更新于2016.02.24:
1.No scheme问题的解决
2.Code Sign Error问题的解决
3.关于.ipa打包的问题解决方案
2016.02.25 ->Homebrew
2016.02.26 ->Fir.im以及蒲公英
安装Jenkins
点击Jenkins进入Jenkins官网,右边有个mac os x点击下载。
下载之后会有个jenkins.war包(后台服务),双击打开会提示
需要有jdk
才能使用此工具。
点击更多信息
进入页面选择JDK,然后会进入此页面Java SE Development Kit 8 Downloads
选中Accept License Agreement
授权,然后选择Mac OS X x64下载dmg文件。
安装好JDK之后,直接点击jenkins.war
运行或者使用命令行java -jar jenkins.war
运行,然后浏览器访问http://localhost:8080/即可进入Jenkins界面。关于Jenkins的一些配置详情可以参考Starting and Accessing Jenkins。
安装插件
点击系统管理
->插件管理
->Tab搜索Xcode,勾选下载安装,然后重启就可以使用了。
如果你想集成Github的Pull Request,需要安装Github Plugin
和GitHub pull request builder plugin
,还想使用Testflight就需要再安装git plugin
和Testfilght plugin
。
新建Job
新建一个自由风格的软件项目
一般会勾选丢弃旧的构建,这样会清理build文件夹。
源码管理
如果使用的是svn,就选择subversion
增加Xcode构建
如果有workspace
的高级配置:
注:通过之后的深入了解,Code Signing Idenity以及SDK的配置是可以不要的,至于Code Signing Idenity的配置也不是这样的,如果需要配置这个的话,见下面的内容。
Build
Build过程总是失败,控制台输出报如下错误:
根据提示:/Application/Xcode 2.app/Contents/Developer
路径不存在,通过一番折腾,搞死人>.<,这个坎终于过了,只要在命令行输入sudo xcode-select -s /Applications/Xcode.app/
执行就好了,可是问题又来了 TT.TT
找到问题所在,开始配置的iOS SDk:iphoneos9.0
不对,修改为iphoneos9.2
再次构建,然后又报错T.T(欲哭无泪)。
又折腾半天,心累!找到Jenkins下面的项目运行一下,svn下下来的工程.a文件全部没有......
想起以前给svn添加过.a文件,SVN上传.a文件。
以为这次能成,结果:
卡死在这里,一直这样,又不报错,~~~(>_<)~~~
更新
经过一段时间的摸索与参考,此处推荐lp_马建成的几篇Jenkins搭建博客CI第一篇:Jenkins+github->fir.im/蒲公英pgyer.com、CI第二篇 集成项目(SVN)workspace编译生成ipa到fir-蒲公英(jenkins)、CI第二篇续 issues。
上面的问题主要就是关于No scheme的,而解决这个问题只需在scheme管理share一下再上传项目就可以了。No scheme 的解决办法
之后又失败了一次:
从报错可以看出,是code design的问题,上面lp_马建成的博客有提到,但是最后尝试了很多次都不对,然后查找资料,最后找到一种方式:自己配置Keychains and Provisioning Profiles
,这需要用到Keychains and Provisioning Profiles Plugin,具体的配置方法在链接里面可以找到。
SUCCEEDED!!! 终于构建成功了,OMG!
但是打包成ipa失败了:
然后参考了一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP,失败原因是不支持Mac10.10以上的打包。所以需要用脚本来实现iOS打包:(请配置自己的workspace
、scheme
、CODE_SIGN_IDENTITY
、ProvisioningProfile
)
if [ -d "${WORKSPACE}/build" ]; then rm -rf ${WORKSPACE}/build; fi;
mkdir ${WORKSPACE}/build;
if [ -d "${WORKSPACE}/build/${BUILD_NUMBER}" ]; then rm -rf ${WORKSPACE}/build/${BUILD_NUMBER}; fi;
mkdir ${WORKSPACE}/build/${BUILD_NUMBER};
xcodebuild -workspace ${WORKSPACE}/Wecube.xcworkspace -scheme "Wecube" -sdk iphoneos archive -archivePath ${WORKSPACE}/build/${BUILD_NUMBER}/archive CODE_SIGN_IDENTITY="iPhone Distribution: ******"
xcodebuild -exportArchive -exportFormat IPA -archivePath ${WORKSPACE}/build/${BUILD_NUMBER}/archive.xcarchive -exportPath ${WORKSPACE}/build/${BUILD_NUMBER}/${JOB_NAME}.ipa -exportProvisioningProfile "XC Ad Hoc: com.***.***"
注:这里使用shell脚本打包,就把之前的Xcode插件配置全部删掉了,如果有更好的方法请告知一声,谢谢!
通过从别人那里的了解,mac 10.10以上可以打包ipa,见stackoverflow
通过这种方式果真也可以打包成ipa。
或者是这样,不勾选Pack application and build .ipa
,build成功之后增加一个Execute shell
:
/bin/mkdir $(PWD)/build/OUTPUT
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $(PWD)/build/MyApplication.app -o $(PWD)/build/OUTPUT/MyApplication.ipa
其中,MyApplication替换成你APP的名称。
Homebrew
查阅资料的过程中,很多都使用了Homebrew
这种Mac上的第三方库管理工具,这使得mac上的包管理非常方便,具体安装很简单,只需在终端输入:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
完成之后,在终端输入brew help
就可以查看到homebrew的用法:
Example usage:
brew [info | home | options ] [FORMULA...]
brew install FORMULA...
brew uninstall FORMULA...
brew search [foo]
brew list [FORMULA...]
brew update
brew upgrade [FORMULA...]
brew pin/unpin [FORMULA...]
Troubleshooting:
brew doctor
brew install -vd FORMULA
brew [--env | config]
Jenkins使用Homebrew安装:
brew install jenkins
Fir.im以及蒲公英
Fir.im Jenkins插件的使用方法见Fir.im网站的博客传送门;
至于上传到蒲公英的使用方法下面扩展链接上有,就不赘述。
以上就是我配置Jenkins的辛酸历程,可能有好的方法,但是我已入坑,希望能帮助到遇到同样问题的童鞋。
扩展链接:
Jenkins+Github+Testflight在Mac下搭建持续集成环境
Jenkins、Git、CocoaPods、Fir.im 实现 iOS 应用持续集成