【发布时间】:2017-01-22 20:40:41
【问题描述】:
随着 Xcode 8 的发布,Apple 引入了一种管理签名配置的新方法。现在你有两个选项Manual 和Automatic。
根据WWDC 2016 Session about Code signing (WWDC 2016 - 401 - What's new in Xcode app signing),当你选择Automatic 签名时,Xcode 将会:
- 创建签名证书
- 创建和更新应用 ID
- 创建和更新配置文件
但根据 Apple 在该会话中的说法,Automatic Signing 将使用 Development signing,并将仅限于 Xcode 创建的配置文件。
当您尝试在 CI 环境(如 Travis CI 或 Jenkins)上使用 Automatic Signing 时会出现问题。我无法找到一种简单的方法来继续使用自动并签署分发(因为 Xcode 强制您使用开发和 Xcode 创建的配置文件)。
新的“Xcode 创建的配置文件”没有显示在开发者门户中,虽然我可以在我的机器中找到...我应该将这些配置文件移动到 CI 机器,为Development 构建并导出为Distribution?有没有办法使用xcodebuild 覆盖Automatic Signing?
【问题讨论】:
-
我遇到了同样的问题,这让我很抓狂。
-
我创建了一个简单的ruby script,允许您在自动和手动签名之间切换。您可以切换到手动签名并使用
PROVISIONING_PROFILE_SPECIFIER、CODE_SIGN_IDENTITY组合。请注意它使用xcodeprojgem,您必须先安装gem install xcodeproj。我希望这会对你有所帮助。 -
太棒了,我最终也做了同样的事情。在我的情况下,一个简单的查找和替换工作正常。我会分享我的发现。
-
问题仍然存在,即使您切换到
Manual signing,您也必须找到一种方法将您的证书和配置文件(开发或生产)共享给所有 CI 服务器(因为 cli xcodebuild 命令无法管理那些像xcode一样)。话虽如此,您又回到手动管理某些配置文件(例如使用 fastlane),而自动功能失去了一点兴趣。 -
事实上,只要您使用 Xcode,自动签名就是一项很棒的功能。它终于奏效了!可悲的是,如果你不打开 Xcode(就像在 CI 中一样),它就不起作用。因此,我们最终在开发时使用自动签名,并使用上面的 Jenkins 构建脚本切换到手动签名。不过,如果
xcodebuild可以自己进行自动签名,那就太好了。让我们希望签名将在 Xcode 的下一个版本中完全自动化。 ^^
标签: xcode jenkins continuous-integration travis-ci xcodebuild