随着 Xcode 8 的发布,Apple 引入了一种管理签名配置的新方法。现在你有两个选择Manual
and Automatic
.
根据 WWDC 2016 关于代码签名的会议(WWDC 2016 - 401 - Xcode 应用签名的新增功能) https://developer.apple.com/videos/play/wwdc2016/401/,当您选择Automatic
签名后,Xcode 将:
- 创建签名证书
- 创建和更新应用程序 ID
- 创建和更新配置文件
但根据苹果在那次会议上的说法,Automatic Signing
将要使用Development signing
并且仅限于 Xcode 创建的配置文件。
当您尝试使用时就会出现问题Automatic Signing
在 CI 环境(如 Travis CI 或 Jenkins)上。我无法找到一种简单的方法来继续使用自动并签署分发(因为 Xcode 强制您使用开发和 Xcode 创建的配置文件)。
新的“Xcode 创建的配置文件”不会出现在开发人员门户中,尽管我可以在我的机器中找到...我应该将这些配置文件移至 CI 机器,构建为Development
并导出为Distribution
?有没有办法覆盖Automatic Signing
using xcodebuild
?
我使用 Jenkins CI 和 Xcode 插件基本上遇到了同样的问题。
我最终自己使用了构建和协同设计的东西xcodebuild
.
0. 先决条件
为了成功完成以下步骤,您需要安装必要的配置文件和证书。这意味着您的代码签名应该已经可以正常工作了。
1. 构建.xcarchive
xcodebuild -project <path/to/project.xcproj> -scheme <scheme-name> -configuration <config-name> clean archive -archivePath <output-path> DEVELOPMENT_TEAM=<dev-team-id>
-
DEVELOPMENT_TEAM
:您的 10 位开发团队 ID(类似于 A1B2C3D4E5)
2. 导出为.ipa
xcodebuild -exportArchive -archivePath <path/to/your.xcarchive> -exportOptionsPlist <path/to/exportOptions.plist> -exportPath <output-path>
示例exportOptions.plist
:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>development</string>
<key>teamID</key>
<string> A1B2C3D4E5 </string>
</dict>
</plist>
-
method
: 是其中之一development
, app-store
, ad-hoc
, enterprise
-
teamID
:您的 10 位开发团队 ID(类似于 A1B2C3D4E5)
无论如何,这个过程更接近于您手动使用 Xcode 执行的操作,而不是 Jenkins Xcode 插件所做的操作。
注意:.xcarchive 文件将始终经过开发签名,但在第二步中选择“app-store”作为方法将进行正确的分发签名,并且还将分发配置文件包含为“embedded.mobileprovision”。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)