美文网首页其他
Jenkins+Python持续集成iOS项目

Jenkins+Python持续集成iOS项目

作者: 哦呵呵y | 来源:发表于2017-12-11 17:38 被阅读10次

    前言

    由于公司打包测试频率太高,极其浪费时间。为了节省时间和让测试能够直接进行打包。最近研究了各个持续集成方案的实现。最后选择用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配置和构建脚本实现细节

    相关文章

      网友评论

        本文标题:Jenkins+Python持续集成iOS项目

        本文链接:https://www.haomeiwen.com/subject/buxwixtx.html