how to call builtin-productPackagingUtility in command line

自古美人都是妖i 提交于 2019-12-06 17:12:30

问题


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...


回答1:


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.



回答2:


Using the codesign utility does not require an xcent file. You can simply create a plist file and use that for entitlements. Make sure it is an XML plist, not binary.




回答3:


The format of the .entitlements and the ${APPNAME}.xcent is the same so it can just be copied across.



来源:https://stackoverflow.com/questions/9280130/how-to-call-builtin-productpackagingutility-in-command-line

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!