其他

Jenkins+Python持续集成iOS项目

2017-12-11  本文已影响10人  哦呵呵y

前言

由于公司打包测试频率太高,极其浪费时间。为了节省时间和让测试能够直接进行打包。最近研究了各个持续集成方案的实现。最后选择用Jenkins来集成,实现dev、master分支的打包,以及fir的上传和最后的发送钉钉通知

  1. 由于网上大多数Jenkins教程都是老版本的,配置有些不同,一直配置不好,所以最后选择将打包上传的部分用python来实现。
  2. 由于使用python代替了大部分的操作,所以jenkins的配置变成了很简单,网上也好多教程,只需要创建项目,配置git地址即可。**jenkins一定不要使用.pkg文件安装,会有各种bug 使用.war文件安装或者homebrew安装 **
  3. 将打包所需的证书全部放入python脚本所在文件夹中,剩余打包上传操作由脚本实现。
  4. 打包命令是使用xcode自带 xcodebuild工具来实现
clean
xcodebuild clean project_path
构建
xcodebuild -workspace (xcworkspace 文件名) -scheme (scheme 名称) -sdk iphoneos -configuration (Debug or Release) clean archive -archivePath (.xcarchive 要存放的位置)  CODE_SIGN_IDENTITY="(project_teamName)" PROVISIONING_PROFILE="(.mobileprovision 的 UUID)"
生成ipa
xcodebuild -exportArchive -archivePath (.xcarchive 文件) -exportOptionsPlist (打包的配置plist文件) -exportPath (ipa文件要存放的位置)'

其中打包使用的plist文件是通过xcode打包导出ipa时生成的,省去了很多参数的输入,要保证证书和plist文件的对应

  1. 打包完成使用fir工具上传
fir publish %s --token=(fir账号的token) --short=(自定义生成的短连接) -Q
  1. 使用上传时配置的短连接 发送钉钉消息 需要配置钉钉机器人

12月12更新

  1. 通过解析项目 .pbxproj 文件来获取.mobileprovision的配置信息
  2. 使用.mobileprovision文件名来导出ipa文件,放弃使用UUID
  3. 不在需要带入防止.mobileprovision文件到脚本目录

python 脚本已上传github # iOS_CI_Python

3月15更新

使用 nohup java -jar /usr/local/Cellar/jenkins/2.99/libexec/jenkins.war >/dev/null 2>&1 & 来启动jenkins就没有任何问题 但是使用其他启动方式就会导致脚本执行失败,不知道什么问题, 而且将这段命令替换进开机启动的配置文件里面居然不管用,无奈只好写个shell脚本每次启动执行一下脚本,不过幸好MAC常年不关机,也基本用不到。

相关借鉴资料
关于持续集成打包平台的Jenkins配置和构建脚本实现细节

上一篇下一篇

猜你喜欢

热点阅读