Jenkins集成的问题
总结一些配置Jenkins的坑
如何配置Jenkins可以看我上一篇http://www.jianshu.com/p/c7b951b9b4f2
首先到输出日志里面,commmand+f搜索error或者fail,可以看到那里构建出错了。基本都是在日志的最后面。
1.构建的工程路径出错
.xcodebuild: error: '.XXXXXX.xcworkspace' does not exist.
解决方法当然是到配置里面,改好正确的路径啦,记得路径后面不要带.xcworkspace
WechatIMG1.jpeg2.构建targets路径出错
xcodebuild: error: You cannot specify targets with a workspace.
xcodebuild: error: If you specify a workspace then you must also specify a scheme. Use -list to see the schemes in this workspace.
解决方案看图
WechatIMG2.jpeg WechatIMG3.jpeg WechatIMG5.jpeg3.找不到schemes的错误
There are no schemes in workspace "XXX".
选择manage schemes,然后把里面schemes的show和share都勾上,关闭提交代码。
WechatIMG6.jpeg WechatIMG7.jpeg
4.创建输出路径出错
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't create output file: /Users/yuandiLiao/Desktop/ipa/libFMDB.a (Permission denied)
出现这个问题是我配置的时候.ipa输出路径是在桌面创建了文件夹,但是每次构建都失败,最后我只能是输出在工作区了。
输出Build output directory和Output directory还是都填 ${WORKSPACE}/build/ 吧。
5.证书没导入导致xcode找不到配置文件
No profiles for 'XXXX' were found: Xcode couldn't find a provisioning profile matching 'XXXX'.
Code signing is required for product type 'Application' in SDK 'iOS 10.2'
No profile matching 'XXXXX' found: Xcode couldn't find a profile matching 'XXXXX'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor.
Code signing is required for product type 'Application' in SDK 'iOS 10.2'
这个问题很坑,在这里搞了挺久的,因为没有~/Library/MobileDevice/的整个文件夹Provisioning Profiles拷贝到/Users/Shared/Jenkins/Library/MobileDevice下面(没有MobileDevice文件夹就创建一个)。
论坛也有大神说是因为xcode8自动管理证书的问题,用shell命令解决的,具体的可以去搜搜看,但是我用的也是xcode8,配置好证书后就没有这个问题了。具体的可以看我上一篇博客
6. pod: command not found
使用cocoapods管理工程,需要执行pod install 时可能会出现这个错误。打开终端输入 $PATH 注意这个path要大写,如下得到path,然后打开Jenkins ->系统管理->系统设置->全局属性->Environment variables -> 键值对列表中设置
WechatIMG19.jpeg WechatIMG20.jpeg
7. Unable to find a specification for 执行cocoapods时找不到库文件
首先cd到项目目录先,然后执行以下两个命令,把目录clear以下就行了
pod repo remove master
pod setup
8.安装fir-cli出错,没有权限
gem install fir-cli
直接执行安装的话会被拒绝
sudo gem install fir-cli
在前面加上sudo,然后会需要输入密码安装
有可能还会报以下问题
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/restclient
权限被拒绝
解决方案一
sudo gem install -n /usr/local/bin fir-cli --no-ri --no-rdoc
解决方案二,执行以下两个命令,安装Homebrew 和ruby,
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install ruby
最后安装fir-cli应该就可以了
sudo gem install fir-cli
安装成功后可是登陆
fir login
上传
fir publish /Users/liaoyuandi/Desktop/zhiboji.ipa
9分享一个shell命令打包需要的plist文件,
(链接: https://pan.baidu.com/s/1bIaZYu 密码: 7knj)
10.上传fir时遇到的问题 Can not found mapping or dysm file in
found remote files : **/mapping.txt found remote files :
/var/lib/jenkins/workspace/testandroid ERROR: Can not found
mapping or dysm file in /var/lib/jenkins/workspace/testandroid.
Deployment failed : Error while get details for update id
com.zftlive.android Build step 'Upload to fir.im' marked build as
failure
这个问题是fir的新版插件的问题,本来是默认不用上传dysm file文件的,但是新版fir插件应该是默认了要上传,所以导致了找不到这个文件报错。换回之前旧版本的fir插件就行了,分享一个旧版本的fir插件地址吧(链接: https://pan.baidu.com/s/1bptne39 密码: 6xsy)
11. The SDK directory '/Users/liaoyuandi/Library/Android/sdk' does not exist.
用Jenkins打包安卓时,可能会报SDK找不到。
1.检查你的 系统管理-> 系统设置 ->全局属性里面的键值对
件的名称一定是要ANDROID_HOME ,值是你的android SDK的绝对路径是否配置了。如果已经配置好了还是报这个问题的话,需要对该路径chmod一下
2.对android sdk路劲执行
chmod -R 777 +路径
或者(可能没有权限)
sudo chmod -R 777 +路径
如果还不行就对SDK的上级目录执行,一直chmod上去就可以了