【发布时间】:2017-10-05 07:24:35
【问题描述】:
我让 Jenkins Master 在 Ubuntu 的 Aws 实例上运行并创建了 mac 笔记本电脑作为从属设备,当我在 mac loptop 构建中使用 Xcode 运行时成功,但是当我从 Jenkins 触发它时它正在提供。
error :
Check dependencies : No profiles for 'com.xyz.abc' were found: Xcode couldn't find a provisioning profile matching 'com.xyz.abc'. Code signing is required for product type 'Application' in SDK 'iOS 10.2'
* ARCHIVE FAILED * The following build commands failed: Check dependencies (1 failure) Build step 'Xcode' marked build as failure.
附:
我已经尝试阅读以前的帖子,但他们中的大多数都让 Jenkins 在 MAC 上运行,xcode 也在同一台服务器上运行,这不是我的情况。
由于我能够在 xcode 中运行我的项目,我觉得我的代码签名和配置文件是正确的。此外,现在我可以使用创建 IPA Xcode 选项:
产品 --> Mac 笔记本 Xcode 中的存档
那为什么 jenkins 不能创建 ipa 呢?
我也将 login.keychain 中的所有键移到了 system.keychain
我已经使用 java slave-agent.jnlp 将 jenkins master(ubuntu) 连接到 slave(mac)
Jenkins 控制台输出:
================================================ ============= == 可用的配置文件 [ios] $ /usr/bin/security find-identity -p codesigning -v
27) XXXXX“Mac 开发者:Ashish Karpe (YYYYY)”
这与 mac 笔记本电脑中的 xcode 类似,所以我无法弄清楚她出了什么问题!
【问题讨论】:
-
所以我怀疑 Jenkins 在哪里寻找配置文件?
-
你在使用 jenkins ios 插件吗?
-
没有。我没有使用 xcode jenkins 插件,我们只是使用 shell 脚本从 Kenkins 运行我们的构建,这意味着它将使用登录用户的钥匙串作为签名身份。 xcode 插件是否允许您指定/提供用于签名的证书和私钥?也许它没有使用钥匙串,而是它自己的安全存储?您是否按照以下说明进行设置:wiki.jenkins.io/display/JENKINS/…
-
每次更改证书或配置文件时都需要这样做。开发人员配置文件只是一个存档,其中包含证书快照、其私钥和配置文件在某个时间点。
-
我会考虑使用类似 fastlane 工具来自动获取最新配置文件。由于内部原因,我们没有 - 我们在版本控制系统中有配置文件,并检查它并在我们的构建脚本中明确使用它。我不确定如何自动导入 Jenkins,因为我们不使用插件进行构建。
标签: ios xcode macos jenkins code-signing-certificate