Re-Sign iOS App

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:

  1. A “Mobile Provisioning Profile”
  2. An “Entitlements.plist”
  3. An “iOS Distribution Certificate”
  4. 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.

iOS Provisioning Profile

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.

iOS 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

Download the iReSign app.

Fill in all the values required.

iReSign and Views Configuration

Press the “ReSign!” button and you get yourappname-resigned.ipa. You can now submit it for App Store review via the Application Loader.

New MLS Mobile App for 2015

January 12, 2015

Open beta for new MLSsoccer.com

December 04, 2014 Hans Gutknecht

Standings Visualizations

October 30, 2014 Tom Youds