Skip to content

Instantly share code, notes, and snippets.

@gwsu2008
Last active July 6, 2021 06:14
Show Gist options
  • Save gwsu2008/5b7a49964536c810b52b12a2b7aaa15b to your computer and use it in GitHub Desktop.
Save gwsu2008/5b7a49964536c810b52b12a2b7aaa15b to your computer and use it in GitHub Desktop.
Resign IPA with new provisioning profile
rename ipa to zip and unzip it
rm -f embedded.mobileprovision and _CodeSign folder
cp ~/Library/MobileDevice/Profiles/DiscoverEntProdJul2019.mobileprovision Payload/App.app/embedded.mobileprovision
cd Payload
codesign -d --entitlements - *.app > entitlements.plist
cat entitlements.plist
cd ..
mv Payload/entitlements.plist .
codesign -f -s "iPhone Distribution: Company Cert" --entitlements entitlements.plist Payload/App.app
KEYCHAIN_PASSWD='xyz'
KEYCHAIN=$(ls $HOME/Library/Keychains/login.keychain-db 2>/dev/null)
/usr/bin/security list-keychains -s $KEYCHAIN
/usr/bin/security unlock-keychain -p "$KEYCHAIN_PASSWD" $KEYCHAIN
/usr/bin/security show-keychain-info $KEYCHAIN
/usr/bin/security find-identity -p codesigning -v
codesign -f -s "iPhone Distribution: Company Cert" --entitlements entitlements.plist Payload/App.app
zip -qr resigned.ipa Payload
unzip -p myapp.ipa \*/embedded.mobileprovision | grep -a -A 2 ExpirationDate | grep date | sed -e 's/^.*<date>\(.*\)<\/date>/\1/'
====================
Steps
Assumptions:
.ipa filename is app.ipa
app is called MyApp
new provisioning profile resides at: ~/Downloads/AdHoc.mobileprovision
distribution certificate name is Company Certificate
may not need resource-rules parameter
provisioning profile is either for Adhoc, or Enterprise distribution
Commands:
unzip app.ipa
rm -rf Payload/MyApp.app/_CodeSignature/
cp ~/Downloads/AdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision
codesign -f -s "iPhone Distribution: Company Certificate" --resource-rules Payload/MyApp.app/ResourceRules.plist Payload/MyApp.app
zip -qr app-resigned.ipa Payload/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment