美文网首页
部署jenknis实现iOS自动化打包

部署jenknis实现iOS自动化打包

作者: ychen3022 | 来源:发表于2019-04-12 14:35 被阅读0次

    1、jenknis

    当项目越来越多,时不时还要回归测试一下,如果一直由开发人员打包的话,实在是太降低效率了,所以自动化打包必不可少。
    在自动化打包中,我选择了Jenkins,主要是因为他免费,而且可以由测试自行打包(只要我们事先配置好分支、项目名、代码地址等参数就好)。

    2、环境介绍

    因为希望打包任务能够长存,所以我选择将jenkins部署在一台linux服务器上面,然后将一台安装了Xcode的Mac作为其一个节点。

    3、安装步骤

    <1>、从 jenknis官网下载war安装包。

    war安装包

    <2>、 将jenkins.war安装包上传到服务器上

    //root@192.168.XXX.XXX:/root/ 为你的服务器路径,根据情况自行填写
    scp /Users/ychen3022/Downloads/jenkins.war root@192.168.XXX.XXX:/root/
    

    <3>、 登录到linux服务器,并安装Jenkins

    //登录到远程linux服务器
    ssh root@192.168.XXX.XXX
    

    使用ls命令查看是否有jenkins文件


    jenkins文件

    在war 包所在目录,执行以下命令:

    java -jar jenkins.war --httpPort=8080
    
    //想要保持后台进程运行的话,在前面加上nohup,这样关闭终端,也能继续运行
    nohup java -jar jenkins.war --httpPort=8080
    

    <4>、 在浏览器页面输入以下地址:

    http://92.168.XXX.XXX:8080
    

    这样就打开Jenkins管理页面了。
    尽量使用推荐默认配置,按照页面安装流程,直到完成。


    jenkins安装完成

    <5>、 配置Mac电脑为jenkins的节点:系统管理->节点管理->New Node


    配置节点信息

    点save按钮后


    配置节点后

    点击“ agent.jar ”将下载一个agent.jar文件至本地
    在agent.jar所在文件夹下,运行以下上图中的java -jar ...

    //先cd到agent.jar所在文件夹
    java -jar agent.jar -jnlpUrl http://192.168.100.185:8080/computer/ychen3022/slave-agent.jnlp -secret 0117dffc9e5227dfff6d69087e9d52913b2e5206b9ba605155d76fc01e7084d2
    
    

    执行完毕,命令行会打印出日志信息
    再刷新jenkins的管理页面,会发现ychen3022节点已经连接上。


    ychen3022节点连接成功

    <7>、jenkins就部署完成了,只需要我们配置项目的打包信息就可以了。

    屏幕快照 2019-04-12 下午1.27.25.png

    General主要配置一些项目说明,或者设置一些全局变量,比如项目名、环境scheme、分支等;

    Source Code Management主要配置代码地址信息、分支信息;

    Build中配置一些打包脚本:

    //在项目所在文件目录下执行下列操作
    //这里需要补充的一点操作就是:
    //我们需要在创建一个目录,存放一个plist文件,plist文件中对应method和teamID两项信息
    //如下面的/Users/ychen3022/xcode_build/maanshanax@163.com_build_development.plist
    
    rm -rf build/
    
    security unlock-keychain -p  {电脑管理者登录密码} /Users/ychen3022/Library/Keychains/login.keychain
    
    //app_name是在上面设置的变量,指代项目名字
    xcodebuild clean -workspace "./${app_name}.xcworkspace" -scheme "${app_name}" -configuration Dev -archivePath build/${app_name}.xcarchive archive -allowProvisioningUpdates
    xcodebuild clean -exportArchive -archivePath build/${app_name}.xcarchive   -exportPath build  -exportOptionsPlist /Users/ychen3022/xcode_build/maanshanax@163.com_build_development.plist -allowProvisioningUpdates
    
    //将打出来的ipa上传到服务器,后期再写网页生成对应的二维码,测试可以通过扫描二维码来安装ipa包
    infoPlist="${app_name}/Info.plist"
    version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
    branch=$(echo ${GIT_BRANCH}|cut -d '/' -f 2)
    echo $branch
    scp build/${app_name}.ipa root@192.168.XXX.XXX:/home/apkdownload/dev/btxy/${env_name}-${app_name}-v${version}.ipa
    
    

    配置好打包脚本就可以进行打包了。

    <8>、完善
    按照上面的步骤,我们可以完成打包任务,但是当电脑关机后,必须得重新运行第<5>步的后半部分工作,才能进行打包,而且终端也不能关闭。
    那我们可以尝试写个脚本,让电脑开机便执行命令,使jenkins节点保活。
    这样关机或者关闭终端都不会影响打包任务。

    以下参考:XW_学文的Mac OS开机启动自动执行命令行

    新建一个文件夹jenkinsStart,将agent.jar文件拖进来,然后新建一个jenkinsStart.sh脚本文件。

    cd /Users/ychen3022/jenkinsStart
    
    nohup java -jar agent.jar -jnlpUrl http://192.168.XXX.XXX:8080/computer/ychen3022/slave-agent.jnlp -secret 896f7c5b5eec88f30d58e53b534327e71a520a68d19ce9534f132f74385df309
    
    

    在该文件夹下执行

    $ chmod 777 jenkinsStart.sh
    

    有了权限之后,右键文件,选择“显示简介”,将打开方式选择为终端打开:


    设置jenkinsStart文件属性

    然后添加成开机自启动,(在设置->用户与群组->登录项)的登录项中添加启动文件。

    这样就完成了我们的jenkins部署啦。

    相关文章

      网友评论

          本文标题:部署jenknis实现iOS自动化打包

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