【问题标题】:Xcode signing using Jenkins使用 Jenkins 进行 Xcode 签名
【发布时间】:2019-06-23 14:12:39
【问题描述】:

我正在尝试使用 Jenkins 对我的 Unity 应用程序进行签名和存档。我安装了 Xcode jenkins 插件,除了一个奇怪的问题外,一切似乎都运行良好。

在 xcodebuild 阶段,应该对存档进行签名时,我收到以下错误:

错误:找不到签名证书“​​iOS 开发”:没有“iOS 开发”签名证书匹配团队ID“QF6V2M666X”与 找到了私钥。 (在目标“Unity-iPhone”中)

现在的问题是我不是为了开发而构建,而是为了生产。我使用了一个生产配置文件,它指向生产证书。团队 ID 是生产团队 ID(出于安全原因在此处更改)。这是构建输出的另一部分:

要调用 xcodebuild:, scheme: Unity-iPhone, sdk: DEFAULT, 项目:默认,配置:发布,清洁:否,存档:是, 控制台日志:是,symRoot:默认,buildDir:默认, 开发团队ID:QF6V2M666X

[sr-ios] $ /usr/bin/xcodebuild -scheme unity-iPhone -configuration 发布存档 -archivePath

当我在 Xcode 中打开项目时,我可以看到由于某种原因 Xcode 在代码签名身份部分中选择了“IOSDeveloper”,而不是“IOSDistribution”(或配置文件中的实际证书):

我不知道这是否可以从 Jenkins 中更改,但我认为 Xcode 应该从配置文件中选择它。

【问题讨论】:

  • 嗯,Bamboo 也有类似的问题。在那里,我创建了一个手动更改所有签名的脚本。但我认为 fastlane 有一种更简单的方法。
  • @m1sh0 你知道代码签名身份设置是否以及存储在 xcode 项目中吗?
  • 我记不太清了,但是如果您使用 git(或 van 或类似的东西),您会发现它很容易。只需打开您的代码的最新版本并从 Xcode 更改代码签名,而不是git status, git diff 会告诉你确切的位置。之后,您需要脚本来替换该值。

标签: ios xcode unity3d jenkins code-signing


【解决方案1】:

所以我设法找到了问题并解决了它,这是其他人的解决方案。

在 Unity 2018 中,他们在 iOS 播放器设置的“其他设置”部分添加了一个新选项,称为 IOS Provisioning Profile->Profile type:

此选项用于选择签名身份。我想你可以使用“自动”,但就我而言,因为我使用的是 Jenkins,所以我将它设置在这样的构建脚本上:

PlayerSettings.iOS.iOSManualProvisioningProfileType = ProvisioningProfileType.Distribution;

设置此选项后,xcode 能够正确签署应用程序以进行分发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2011-12-23
    • 2018-03-27
    • 1970-01-01
    相关资源
    最近更新 更多