How to control distribution of your iOS apps on App Store when using a contractor for app development

By | April 2, 2014

You’ve hired a contractor to develop an app for you, but you want your app’s entry in App Store to say that the app is owned by your company. Also, you want the income of sales of the app to go directly to your company. Additionally, you want to control the app’s description, in-app purchases and more. This article explains how to get that control. 

 

Two options

 

For both of these options you need to enter a “iOS developer program” subscription with Apple for your company. The contractor is referred to as “the developer” in the text below.

 

1) Give the developer access to publish apps in your name

 

The team agent of your company’s “iOS developer program” adds individual developers from the contractor by inviting the relevant individuals to be part of the development team through “Apple Developer Center” . The invitations are sent to the individual developers’ Apple IDs.

The team agent then approves the developers when they join. One of the developers are made “admin” of the team, and he creates the necessary certificates and profile to publish apps on the App Store.

 

2) Re-sign the app with your credentials and publish it yourself

 

Development and testing

The developer has his own iOS developer program. He creates certificates and profiles necessary for development and testing. When creating the provisioning profile, he uses an agreed upon “Wildcard App ID” that matches your identity.

For example “com.yourcompany.ott.*”.

The developer sends you test versions using “Ad Hoc” provisioning profiles that can run on specific iOS devices. This can be done in a simple manner by using (free) services like Test Flight (http://www.testflightapp.com). Optionally, you can distribute the test versions manually, for example by email or a web page. Note that all devices that should run the test version must be added to the provisioning profile.

Create your company’s App Store credentials

You create your own Distribution Certificate for App Store on “Apple Developer Center” for your company. You also create an App ID that matches the one used by the developer. Finally, you create a Provisioning Profile using the mentioned App ID and Distribution Certificate.

 

The developer creates a packaged version of the tested App (of the type IPA) and sends this to you. You then re-sign this app with your credentials.

 

Re-signing the app for distribution

This is done by modifying the app-package (IPA) and signing it with your credentials.

 

The necessary modification to the IPA’s content is to replace the embedded mobile provisioning file with your company’s App Store Provisioning Profile.

Then you can re-sign the IPA with your company’s App Store Distribution Certificate.

Note that if you need to replace the App ID too (the developer used a different APP ID from you),  the “CFBundleIdentifier” (IPA-term for App ID) should be replaced too.

 

These operations are best made automatically using a script and must be executed on a Mac with Xcode installed. Such a script is available here.

Uploading the IPA to App Store

The modified IPA can now be uploaded using your Apple ID and Apple’s “Application Loader” software.

 

Variant: Distribute the IPA internally using an iOS Enterprise program

After buying the iOS Enterprise program from Apple you will be able to distribute your app to any company device.

 This distribution can be done from a specially crafted web page or company-internal app store, that when opened in the Safari browser on the device offers the user to install the app.

The re-signing procedure is the same as for the App Store, except that you use your Enterprise distribution certificate and Enterprise provisioning profile.

 

Leave a Reply

Your email address will not be published. Required fields are marked *