Search code examples
iosxcodeprovisioning-profileipa

IPA file for In-house development


It's not clear for me, the in-house model distribution. I need to distribute an app for a company employees. I generate the IPA file with Apple Enterprise Developer Program with In-house model. I use Xcode for this, so I guess the IPA file can be distributed on the registered devices on Apple Developer page.

If there are new employees, the company register this new employees on the Apple Developer page Devices section.

  1. Is it necessary to generate again the IPA file on XCode?
  2. Can i use the old IPA file to distribute the app for them?
  3. Can i use diawi for distribute the IPA file?
  4. In-house IPA file will take one year before expiring. After that time it would be mandatory generate another IPA file with XCode?

My questions are on the way to avoid the use of Xcode more that the initial IPA generation, because my client doesn't have the source code project.

Thanks in advance.


Solution

  • So let me answer these questions individually.

    1. Is it necessary to generate again the IPA file on XCode?

    No, if you are using an enterprise distribution profile, you can distribute the IPA and it will be able to be installed on any device, as long as the certificate has not been revoked and the cert and profile have not yet expired. The profile is set to expire 1 year from when it is generated, and the cert is set to expire 3 years from when it is generated.

    1. Can i use the old IPA file to distribute the app for them?

    Yes, again, if correctly building with the enterprise distribution profile, you can give new employess the existing IPA and they will be able to install it. They will need to trust the profile, by going to Settings->General->Profiles & Device Management. There you will see your company name under "ENTERPRISE APPS". Tap that entry and trust the developer.

    1. Can i use diawi for distribute the IPA file?

    Yes you can.

    1. In-house IPA file will take one year before expiring. After that time it would be mandatory generate another IPA file with XCode?

    Technically no. When the profile expires, the only thing you need to do is get the new provisioning profile on the device that need to run the app. This is because the app doesn't necessarily care the profile that was installed when you installed the app. It just cares whether there is a valid provisioning profile on the device that matches the bundle ID of the app. This profile installation can be done with Mobile Device Management (MDM), or by emailing the profile to all the users (clunky), OR by building the app again in Xcode with the new profile and redistributing to the users. If you don't have MDM, or tech-savvy users, your best bet is to rebuild and redistribute. To make this easy on yourself, but a self-update check into your apps that prompts the user when a new version is available and automatically downloads the new version. That is how we do it. Just make sure you publish the update long enough before the old profile expires so that users have a chance to launch the app. After the expiration date, the app will simply crash on launch.

    Certificate expiration is a different matter. For that, you do need to re-build the app and redistribute. An app that's been signed with an expired signing identity (tied to cert) will not run after the expiration date, so you need to build a new binary that is signed with a valid cert.