使用XCode可以正常打包并导出IPA,但是同一台机器上安装的Jenkins就出现问题。

编译时出现error: No certificate for team ‘xxx’ matching ‘iPhone Distribution: xxxxx’ found: Select a different signing certificate for CODE_SIGN_IDENTITY, a team that matches your selected certificate, or switch to automatic provisioning. (in target ‘xxxxx’ from project ‘xxxxx’)

出现找不到证书

后面Jenkins安装了Keychain and Provisioning Profiles Management插件,把login.keychain文件和profile文件上传后,虽然证书是找到了,但是profile没找到,出现error: No profile for team ‘xxx’ matching ‘xxxx’ found: Xcode couldn’t find any provisioning profiles matching ‘xxxx’. Install the profile (by dragging and dropping it onto Xcode’s dock item) or select a different one in the Signing & Capabilities tab of the target editor. (in target ‘xxxx’ from project ‘xxxx’)

找不到profile

研究了下,应该是Jenkins的启动用户是root权限问题。

首先停止jenkins运行:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

然后更改/Library/LaunchDaemons/org.jenkins-ci.plist,我使用的vim修改,可根据自己的习惯使用其他方式修改。下面是我的org.jenkins-ci.plist文件

这里需要注意的是我使用brew来安装的jenkins,所以JENKINS_HOME目录本来是在其它目录下的,我是手动把它移动到Document目录下,所以需要执行

最后执行

重新刷新Jenkins页面,使用xcodebuild archive 命令来编译,在最后又出现了其它错误

errSecInternalComponent这个错误是查了下是签名机制的问题。

我的解决方式是在Jenkins的Build Shell里面的xcodebuild上一句加多一句代码

然后使用以下两句命令导出ipa(把APPNAME按自己实际填写)

这里要注意一下的是export.plist这个文件,建议手动在XCode打包导出ipa后把那个ExportOptions.plist文件直接拿来用,避免填写错误。

发表评论

电子邮件地址不会被公开。 必填项已用*标注