Jenkins问题

1. iOS编译签名文件找不到

Check dependencies
Code Sign error: No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “75025357-245d-448b-9343-96148a0xxxxx”, however, no such provisioning profile was found.

原因是jenkins以jenkins用户身份运行,iOS项目编译用的签名文件要从安装证书时的用户目录
~/Library/MobileDevice/Provisioning\ Profiles/75025357-245d-448b-9343-96148a0xxxxx.mobileprovision
拷贝到
/Users/Shared/Jenkins/Library/MobileDevice/Provisioning\ Profiles/75025357-245d-448b-9343-96148a0xxxxx.mobileprovision

2. iOS编译证书找不到

Check dependencies
Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings
(“testxxxxx_Distribution_inhouse_01”) were found.

没找到证书,打开“钥匙串访问”,从“登录”拷贝安装的证书到“系统”下

3.User interaction is not allowed.

Signing Identity: "iPhone Distribution: ****************** Co., Ltd."
Provisioning Profile: "************"
(************-****-****-****-************)

/usr/bin/codesign --force --sign ************************************ --entitlements /Users/Shared/Jenkins/Home/workspace/****/build/**************.build/Release-iphoneos/*************.build/****.***.****--timestamp=none /Users/Shared/Jenkins/Home/workspace/********/build/Release-iphoneos/****.app

/Users/Shared/Jenkins/Home/workspace/*****/build/Release-iphoneos/****.app: User interaction is not allowed.
Command /usr/bin/codesign failed with exit code 1�[0m�[2m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━�[0m

�[1m�[31m** BUILD FAILED **�[0m �[2m(89065 ms)�[0m

Build step 'Execute shell' marked build as failure
Finished: FAILURE

拷贝~/Library/Keychains/login.keychain到
Users/Shared/Jenkins/Library/Keychains/login.keychain
在jenkins执行编译的脚本中加入命令解锁jenkins的钥匙串
/usr/bin/security unlock-keychain -p pwd ~/Library/Keychains/login.keychain
(执行一次后可将这行代码删除)

4. ssh连接git问题

jenkins连接gitlab需要ssh key

通过命令 ssh-keygen -t rsa -C "xxx@xxx" 生成key

将公钥(~/.ssh/id_rsa.pub)内容拷贝到gitlab-profile setting的SSH KEYS字段

jenkins连接需要私钥(~/.ssh/id_rsa),有两个地方可以添加

a.jenkins用户的Private Key字段(在项目配置-源码管理-Credentials-add中选择SSH Username with private key
b.或者在全局菜单Credentials-Global credentials (unrestricted)中进行管理)

推荐阅读更多精彩内容