cea3fw
Last Updated: October 06, 2016
·
35.56K
· _jeffreyjackson
Profile

resign .ipa with new distribution certificate

Assumptions:

  1. .ipa filename is app.ipa
  2. app is called MyApp
  3. new provisioning profile resides at: ~/Downloads/AdHoc.mobileprovision
  4. distribution certificate name is Company Certificate
  5. may not need resource-rules parameter
  6. 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/
Say Thanks
Respond

6 Responses
Add your response

11867
50adc37a6c4d5923e3c34250f0694c70

Perfect directions. Thanks! May I suggest that you note that the signing identity (-s) is the full name of the certificate as shown via the keychain tool.

over 1 year ago ·
11870
50adc37a6c4d5923e3c34250f0694c70

One more thing... The codesign --entitlements option can be used to add entitlements to the binary. When I followed these directions without using --entitlements, I lost the original entitlements.

over 1 year ago ·
15224
B42e95482cbfad0e59138637eb0f3cf9

Hi Jeff,

Thank you for your post. pretty good.

Also, does this resining works for app store build ? I am finding way to resign the development build and upload it to app the store.

Thanks

over 1 year ago ·
15682
Dd2be197c83c9fb4e38cd328a8b0e0f5

If you run into issue like :
"cannot find code object on disk"

then set an environment variable

CODESIGNALLOCATE="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesignallocate"

NOTE : there is an underscore between codesign & allocate environment variable which is getting supressed for some reason.

over 1 year ago ·
17938
0 eokdzfbec6ymdsx3em5szubkg8rh7so3e0knzsxjj5fjkodtx4nl9dkc2au92g0dwjqcbosng t5

I got an ipa and I re-signed it with EXPIRED provisioning profile (Enterprise) and with a valid certificate(.p12). using steps mentioned below :-

and Re-Sign it with steps provided by you

when I am extracting ipa (getting .App file) -> doing show package Contents (on .App) -> checking content of embedded.mobileprovision. it show same expired provisioning profile that i used to Re-sign the ipa.

Problem : I am successfully able to install it to ipad and able to run the app. Ideally App should not work with Expired provisioning profile.

Question : If we Re-signing the app through Command-line with Expired profile Will it work.?

over 1 year ago ·
17983
None

Have you been able to codesign Today app extension?

over 1 year ago ·