This is a long shot but... I've been mistakenly left with an IPA instead of an XCode project by a teammate who's gone off on holiday and it urgently needs uploading to iTunes Connect. The problem, when I tried to upload the IPA via Application Loader the Minimum OS version was set to 5.0, and I got an error that this was too low, had to be at least 5.1.1. I went through the process here: Change app Version with only IPA file provided (no xcode) to edit the Minimum OS via the Info.plist but I encountered the same issue as the final comment on this question, the resulting IPA will upload but will not install.
I've done a ton of searches for other solutions but have only managed to find old, pre-iOS 8 answers, all the same solution as within the link above - If anyone knows if its still possible to alter the minimum OS version of an IPA without being able to do this through XCode much appreciate the help. Thanks.
Thanks to phix23 who gave a tip to check the error messages when trying to install, it turned out to be an issue with the entitlements. I got this fixed, uploaded to iTunes Connect and distributed via TestFlight.
There were a couple of steps I followed to sort this out which I think are worth noting here incase anyone else needs to do this. After unzipping the IPA and editing the Info.plist to change the Minimum OS, I needed to sort out the entitlements.
<key>beta-reports-active<key><true/>
(to use TestFlight) and<key>get-task-allow<key><false/>
&<key>aps-environment<key><string>production<string>
(because these were in my provisioning profile) to the python script before generating the entitlements .xcent.archived-expanded-entitlements.xcent
so I also edited this to match the entitlement.xcent
file I generated with the python script using a text editor. Just to be sure.When resigning I left out the
--resource-rule
option (which didn't seem to work for me) but included--entitlements
option, pointing to the entitlement.xcent
file .Also, it's worth noting that if the IPA had a Payload and a Symbols directory when unzipped, select them both and compress into an archive to rezip, rather than just rezipping the Payload.