Re-signing Apps created by an external developer
When you work with 3rd party developers, at the end of the project we need to re-sign the published ipa with our bundleID and certificates. All we are provided with is an ipa that has been signed with the developers certificates but we are unable to upload them into the app store.
You will need the following:
The Mobile Provisioning Profile
A iOS Distribution Certificate
Entitlements.plist (See below is unsure how to create)
Creating Entitlements.plist
To create the an Entitlements plist open the Provisioning Profile in atom
Inside this file there is a key called “Entitlements” Copy the <dict> section and paste this into a plist file
<?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>
Re-sign the .IPA
Unzip the ipa using the below command
unzip -o /path/to/YourApp.ipa -d /path/to
Inside the extracted folder you can will find an Info.plist
Open the files and update the BundleID. Saving the file
Locate the ‘embedded.mobileprovision’ and replace with you new Mobile Provisioning Profile being sure to rename it to embedded.mobileprovision
Run the below command to resign the app with the new details
codesign -f -s “iOS Distribution Certificate Name" -i "PREFIX.yourappBundleID" --entitlements "entitlement.plist" -vv Payload/MyApp.app/MyApp
Rezip Payload folder and rename to .ipa













