If you ever work with 3rd party developers, you know that getting the final project into production can take two different routes. You can either let the developer push the code/project into production or they hand it over to your internal team to release. There are pros and cons for each, but I always prefer to publish things ourselves since it reduces security concerns and gives us more control. The Apple App Store is no different, and it is actually really simple to take a developer app and turn it into an App Store version for submission.
Note: You can use this exact same process to resign the app to your developer certificate and profile, so you can install it on your own registered developer devices.
Get a developer build
Get your developer to give you the .IPA file that is signed using their normal “iPhone Developer” key. They do this all the time to test the app on physical devices they own.
Get your tools in order
You will need the following:
- A “Mobile Provisioning Profile”
- An “Entitlements.plist”
- An “iOS Distribution Certificate”
- iReSign OS X app (or you could use command line)
1. Mobile Provisioning Profile
Download (or create then download) this from the “iOS Provisioning Profiles” inside of Apple Developer Members Center.
2. Entitlements Plist
You will actually need to make this yourself. You will need two values to make the strings required. You need the App ID Prefix and the Bundle ID. You can find them in Members Center “Certificates, Identifiers & Profiles” under Identifiers > App IDs.
Open your favorite text/code editor and drop this in. Then update the two values for “PREFIX.yourappBundleID” in the following code and save it as “entitlements.plist”.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>PREFIX.yourappBundleID</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PREFIX.yourappBundleID</string>
</array>
</dict>
</plist>
If you are NOT using Push Notifications, you need to remove the two lines:
<key>aps-environment</key>
<string>production</string>
3. iOS Distribution Certificate
You should have this installed already. If not, you can get it installed via Xcode or Member Center.
-
Xcode > Preferences > Accounts
-
Find or add your Apple ID and click “View Details…”
-
”+” “iOS Distribution” (or iOS Development) and then Refresh (bottom left)
Re-sign the .IPA
Fill in all the values required.
Press the “ReSign!” button and you get yourappname-resigned.ipa. You can now submit it for App Store review via the Application Loader.