在尝试了一些选项之后,这些是我可以在CI服务器上使用的解决方案:
在CI环境中包括开发人员证书和私钥以及自动生成的配置文件:
使用会
Automatic signing强制您使用
Developer证书和
auto-generated provisioningprofiles。一种选择是将开发证书和私钥(应用程序->实用程序->钥匙串访问)以及自动生成的配置文件导出到CI机器。定位自动生成的配置文件的一种方法是导航到
~/Library/MobileDevice/ProvisioningProfiles/,将所有文件移动到备份文件夹,打开Xpre并存档项目。Xpre将创建自动生成的开发配置文件,并将其复制到
ProvisioningProfiles文件夹中。
xprebuild archive ...将为创建一个
.xcarchive签名
Development。
xprebuild-exportArchive ...然后可以将构建辞职
Distribution
在CI环境中构建时,将“自动”替换为“手动”
拨打电话之前
xprebuild解决方法是更换的所有实例
ProvisioningStyle =Automatic与
ProvisioningStyle = Manual在项目文件。
sed可用于在
pbxproj文件中简单查找替换:
sed -i '' 's/ProvisioningStyle = Automatic;/ProvisioningStyle = Manual;/'<ProjectName>.xpreproj/project.pbxproj
@thelvis还使用gem
创建了一个Ruby脚本来完成此任务
xpreproj。该脚本使您可以更好地控制更改。
xprebuild然后将使用
CODE_SIGN_IDENTITY项目中设置的代码签名身份()以及供应配置文件(
PROVISIONING_PROFILE_SPECIFIER)。这些设置也可以作为参数提供
xprebuild,它们将覆盖项目中设置的代码签名标识和/或供应配置文件。
编辑:使用Xpre
9,xprebuild有一个新的构建设置参数CODE_SIGN_STYLE可供选择Automatic,Manual因此无需在项目文件中查找和替换自动实例为手动,WWDC
2017 Session
403中的更多信息Xpre和Xpre
Server签名中的新增功能
切换到手动签名
手动签名将完全控制所使用的代码签名标识和配置文件。这可能是最干净的解决方案,但缺点是失去了自动签名的所有优点。
要了解有关使用Xpre
8进行代码签名的更多信息,我真的推荐这篇文章以及WWDC2016会议401-Xpre应用程序签名中的新增功能



