如何在命令行中调用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签名,稍后重新签名。 步骤是近似的
- 使用
codesign -d --entitlements=MyApp.xcent MyApp.app
转储原始授权 - 如果您要更改configuration文件,请将新configuration文件复制到
MyApp.app/embedded.mobileprovision
并相应地修改权限(IIRC文件格式具有4字节的魔力和4字节的长度;请记住更新长度!) 。 - 用你想要的证书重新签名。
使用codesign实用程序不需要一个xcent文件。 您可以简单地创build一个plist文件并将其用于授权。 确保它是一个XML plist,而不是二进制。
.entitlements和$ {APPNAME} .xcent的格式是相同的,因此它可以被复制。