How can I deliver an iOS app IPA to a customer to

2019-03-08 21:54发布

问题:

We have developed an iOS app that has been delivered to the customer as an IPA with an ad-hoc distribution profile that allowed a set of their employees to install it on their devices. The customer now wishes to distribute that app internally to all their employees using their iOS Enterprise Developer program credentials.

I had hoped that the customer could simply re-codesign the ad-hoc IPA with their own enterprise identity. However, they say they can't do that. They say they "need an IPA file with the removal of the limitation to only certain devices".

So, what do I do?

  • Do I need to somehow create an "unsigned" IPA for them? (And if so, how do I do that?)
  • Do I need them to generate an Enterprise distribution provisioning profile for me so I can build the app with that profile?
  • Do I need to just send them the source or build output and let them build the package?

I have looked at the following documents, but they have not enlightened me:

  • TN2250: iOS code Signing Setup, Process, and Troubleshooting
  • Distributing Enterprise Apps for iOS Devices

回答1:

It's completely possible to take any IPA and resign it with your own details, modifying the Info.plist, bundle ID, etc. in the process. I do this all the time with IPAs that have been signed by other developers using their own provisioning profiles and signing identities.

If they aren't familiar with the codesign command line tool and all the details of replacing embedded.mobileprovision files and entitlements, the easiest way for them to do this is for you to "Archive" the app via Xcode, and send them the generated archive file (*.xcarchive).

They can import that into Xcode so it is visible in the Organizer, and from there they can choose "Distribute" and sign it with their enterprise identity.

To import the .xcarchive file into Xcode, they just need to copy the file into the ~/Library/Developer/Xcode/Archives directory and it should appear in the Xcode organizer. Then they click "Distribute" and follow the instructions: