如何在命令行中调用builtin-productPackagingUtility

当您在构build设置(Xcode 4.2.1)中指定授权和代码签名身份时,从Xcode构build时您将获得以下输出:

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" 

我想签署我的应用程序文件夹在编译结束,而不是在Xcode构build。

我的问题是我不知道如何在命令行中生成xcent文件。

问题:如何在命令行中生成xcent文件? 我做了一个从根发现,没有什么叫productPackagingUtility …

我想在构build结束时签署我的应用程序文件夹,而不是在Xcode构build期间。

IIRC最新版本的Xcode抱怨,如果您禁用代码签名的设备版本。

最简单的方法是让Xcode签名,稍后重新签名。 步骤是近似的

  1. 使用codesign -d --entitlements=MyApp.xcent MyApp.app转储原始授权
  2. 如果您要更改configuration文件,请将新configuration文件复制到MyApp.app/embedded.mobileprovision并相应地修改权限(IIRC文件格式具有4字节的魔力和4字节的长度;请记住更新长度!) 。
  3. 用你想要的证书重新签名。

使用codesign实用程序不需要一个xcent文件。 您可以简单地创build一个plist文件并将其用于授权。 确保它是一个XML plist,而不是二进制。

.entitlements和$ {APPNAME} .xcent的格式是相同的,因此它可以被复制。