19

当您在构建设置 (Xcode 4.2.1) 中指定权利和代码签名身份时,从 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"

我想在构建结束时签署我的 app 文件夹,而不是在 Xcode 构建期间。

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

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

4

3 回答 3

3

我想在构建结束时签署我的 app 文件夹,而不是在 Xcode 构建期间。

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

解决这个问题的最简单方法是让 Xcode 对其进行签名,然后再重新签名。步骤大约是

  1. 转储原始权利codesign -d --entitlements=MyApp.xcent MyApp.app
  2. 如果您正在更改配置文件,请将新的配置文件复制到MyApp.app/embedded.mobileprovision并相应地修改权利(IIRC 文件格式具有 4 字节魔法和 4 字节长度;记得更新长度!)。
  3. 使用所需的证书重新签名。
于 2013-03-09T03:05:12.257 回答
0

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

于 2013-01-03T02:56:14.897 回答
0

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

于 2017-04-07T15:39:12.870 回答