0

我已经编写了适当的 xcode 构建脚本,当我从命令行运行它们时,它们每次都可以工作。

我有我的 apache 系统作为我的本地用户/组(myuser/staff)运行,所以它应该具有适当的权限(我认为)。

我遇到的问题是,虽然构建正在生成,但它没有签名。

最后,我收到“程序 /usr/bin/codesign 返回 1:[/tmp/1u_gMG7iJU/Payload/myapp.app:代码对象根本没有签名”错误。

就像我说的,如果我直接从命令行执行完全相同的脚本,它会完美运行。

我尝试依靠 xcodebuild clean build 命令来分配正确的配置文件,但这不起作用,因为我实际上生成了两个构建。一个带有企业(通配符),以便我们可以快速轻松地进行内部测试,另一个带有精确的配置文件。所以我需要能够指定要使用的配置文件。

我尝试在签名过程中指定 CODE_SIGN_IDENTITY 和 PROVISIONING_PROFILE 值,但这不起作用

我试过指定 --sign 和 --embed 标志也无济于事。

我当前工作的 xcodebuild 命令是:

/usr/bin/xcodebuild -project /path/to/my.xcodeproj CODE_SIGN_IDENTITY="iPhone 发行版:我的公司" PROVISIONING_PROFILE="my-provisioning-profile-uuid" 干净构建;

/usr/bin/xcrun -sdk iphoneos PackageApplication -v /path/to/build/Release-iphoneos/myapp.app -o /path/to/my/output/myapp.ipa --sign "iPhone 发行版:我的公司" --embed "/local/path/to/provisioning profiles/my-provisioning-profile-uuid.mobileprovisioningprofile";

谁能想到我没试过的东西?

我开始认为也许我应该设置一个自定义钥匙串来保存自动构建的所有证书等,但我不太确定那个兔子洞是否会得到回报。

如果我要走那条路,我是否需要对配置文件具有特殊权限?我是否必须重新创建我所有的活动配置文件(我宁愿不必这样做)。我是否必须移动我的配置文件所在的位置?

我认为可以工作(同样可能不会)的另一种可能性是默认我的所有应用程序都使用企业证书签名,并且只有当我准备好发布它们时,我才指定“生产”证书......我会能够通过脚本做到这一点?

我真的不知道该做什么,到目前为止,我所寻找的任何东西都没有让我更接近。

谢谢你的帮助!

4

1 回答 1

0

为了回答我自己的问题,我最终做的是创建一个 ANT 构建脚本。第一个过程是通过 SSH 连接到我自己的用户帐户,并且该用户拥有所有适当的权限。这也让我不必为 apache 用户设置而烦恼。

于 2014-01-09T00:59:14.607 回答