Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to call builtin-productPackagingUtility in command line

When you specify an entitlement and a code signing identity in build settings (Xcode 4.2.1), you have the following output when you build from Xcode:

ProcessProductPackaging "myAppName.entitlements" "/path/to/myAppName.xcent"
cd /path/to/myAppName/SourceCode
builtin-productPackagingUtility "/path/to/myAppName/SourceCode/myAppName.entitlements" -entitlements -format xml -o "/path/to/myAppName.xcent"


CodeSign "/path/to/Garfields Comic Boom 1.0.app"
cd /path/to/myAppName/SourceCode
setenv CODESIGN_ALLOCATE /Developer/usr/bin/codesign_allocate
/usr/bin/codesign --force --sign "myCertificate" --entitlements "/path/to/myAppName.xcent" "/path/to/myAppName.app"

I would like to sign my app folder at the end of the build, and not during the Xcode build.

My problem is I don't know how to generate the xcent file in the command line.

Question : How do you generate xcent files in command line? I did a find from the root, there is nothing called productPackagingUtility...

like image 403
peterphonic Avatar asked Feb 14 '12 16:02

peterphonic


1 Answers

I would like to sign my app folder at the end of the build, not during the Xcode build.

IIRC recent versions of Xcode complain if you disable code signing for a device build.

The easiest way around this is to let Xcode sign it and then re-sign it later. Steps are approximately

  1. Dump the original entitlements with codesign -d --entitlements=MyApp.xcent MyApp.app
  2. If you're changing provisioning profiles, copy the new one to MyApp.app/embedded.mobileprovision and modify the entitlements accordingly (IIRC the file format has a 4-byte magic and a 4-byte length; remember to update the length!).
  3. Re-sign with your desired certificate.
like image 161
tc. Avatar answered Sep 20 '22 21:09

tc.