How can I deliver an iOS app IPA to a customer to be signed with their own Enterprise provisioning profile

Kristopher Johnson picture Kristopher Johnson · Jun 14, 2012 · Viewed 16.8k times · Source

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:

Answer

Mike Weller picture Mike Weller · Jun 14, 2012

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:

enter image description here