美文网首页
Jenkins自动化打包上传蒲公英、fir

Jenkins自动化打包上传蒲公英、fir

作者: Gary_fei | 来源:发表于2020-03-02 15:07 被阅读0次

    iOS项目准备

    iOS项目,证书选择,取消自动,Debug与Release各自手机添加对应证书


    iOS项目目录下,新增ExportOptions.plist文件,文件内容跟之前用xcode打包ipa文件夹内的ExportOptions.plist一样,其中method改为ad-hoc

    新建任务

    创建新的构建任务,任务名称可以自行设定,建议是项目名称,需要全局唯一,再选择自由风格的项目风格


    General

    构建任务的一些基本配置,如名称描述之类的


    源码管理


    git支持主流的gitlab与github代码管理,因公司团队用的是gitlab,选择git,并填写对应项目的git仓库URL

    第一次新建任务填写仓库URL,会出现报错,提示Failed to connect to repository:xxx(截图中没提示报错,因本人已配置ssh),这是因为私有仓库,没有权限直接访问,需要配置ssh获取访问权限。

    Jenkins与git都需要配置ssh,因Jenkins服务器是独立的,是使用Jenkins账号登录的,所以需要切换至Jenkins用户重新生产ssh key,并把公钥添加到git服务器

    1. 打开终端,设置密码,建议设置简单的,跟开机密码一样,后期需要使用
      sudo dscl . passwd /Users/jenkins
    2. 切换至Jenkins用户
      su jenkins
    3. 重新生成ssh key
      ssh-keygen -t rsa -C "邮箱"
    4. 获取公钥id_rsa.pub,并添加至git服务器
      cat /Users/Shared/Jenkins/.ssh/id_rsa.pub
    5. 获取秘钥id_rsa,并添加至Jenkins中创建的newCredentials
      cat /Users/Shared/Jenkins/.ssh/id_rsa


    在Credentials中,点击下拉选择刚刚创建的Credentials,选择后报错不显示,可以成功访问,选择要打包项目的分支

    构建触发器

    最初可以暂时不做配置,后期因个人需求,再做配置


    构建环境


    第一个选择,是设置每次构建前自动清除上一个工作空间,也可以手动清除

    点击下面保存,退出配置页面,左侧点击清除


    第二个选择,是选择打包项目对应环境下的证书

    1. 返回至Jenkins首页,选择Manage Jenkins,添加Keychains and Provisioning Profiles Management




    2. 获取login.keychain
      终端输入/Users/xxx/Library/Keychains,获取的是login.keychain-db文件,需要复制粘贴至桌面,并修改其文件名,改为login.keychain
    3. 在Keychains and Provisioning Profiles Management页面,选择刚刚修改的文件,再进行upload
    4. 找到电脑的钥匙串访问,找到打包项目的生成证书与发布证书的名称,在Identities中各自填写
    5. 描述文件路径填写/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles,其中注意Provisioning Profiles之间的空格
    6. 点击save

    构建

    下拉选择Execute shell,编写shell脚本

    添加shell脚本

    echo '++++++++提供拉取依赖库的代码++++++++'
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    cd ${WORKSPACE}/项目名称
    /usr/local/bin/pod update --verbose --no-repo-update
    
    echo '++++++++生成archive文件++++++++'
    # keychain解锁,否则打包签名时会失效,详细问题可以查看后续的错误总结文章中
    security unlock-keychain -p "开机密码" ~/Library/Keychains/login.keychain
    if [ -d "${WORKSPACE}/builds" ]; then rm -rf ${WORKSPACE}/builds; fi;
    mkdir ${WORKSPACE}/builds;
    if [ -d "${WORKSPACE}/builds/${BUILD_NUMBER}" ]; then rm -rf ${WORKSPACE}/builds/${BUILD_NUMBER}; fi;
    mkdir ${WORKSPACE}/builds/${BUILD_NUMBER};
    xcodebuild -workspace ${WORKSPACE}/项目名称.xcworkspace -scheme "项目scheme" -sdk iphoneos archive -archivePath ${WORKSPACE}/builds/${BUILD_NUMBER}/archive
    
    echo '++++++++将archive文件导出为ipa包++++++++'
    xcodebuild -exportArchive -archivePath ${WORKSPACE}/builds/${BUILD_NUMBER}/archive.xcarchive -exportOptionsPlist ${WORKSPACE}/ExportOptions.plist -exportPath ${WORKSPACE}/builds/${BUILD_NUMBER}/${JOB_NAME}_${BUILD_NUMBER} PROVISIONING_PROFILE="iPhone Distribution: xxx (xxx)"  -allowProvisioningUpdates
    

    构建后操作

    自动化构建后,需要上传对应测试的测试平台蒲公英、fir




    其中fir.im Token在fir平台获取,pgyer uKeypgyer api_key在蒲公英平台获取,获取方式直接百度即可

    点击保存

    立即构建

    在左侧点击立即构建,可以在Build History列表中看到构建历史,点击其中一个构建,可以在控制台输出看到构建进程信息




    构建结果

    1. 构建状态
      Successful蓝色:构建完成,并且被认为是稳定的。
      Unstable黄色:构建完成,但被认为是不稳定的。
      Failed红色:构建失败。
      Disable灰色:构建已禁用
    2. 构建稳定性
      构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。
    3. 构建历史界面
      console output: 输出构建的日志信息

    结束语

    目前就可以使用Jenkins进行持续集成了,就很棒!
    我在学习配置的过程很曲折,走过了太多的坑,一直雷阵雨,时而转晴,当然了,风雨后必有彩虹,也很美。
    Jenkins是一个强大的自动化工具,功能不仅仅如此,还有更多的功能需要我们去挖掘。如果后期有新增的功能,我也会持续更新文章,大家一起进步,有疑问也欢迎在下方留意。

    最后,来一张很不错的思维导图, 转载"哥本哈根月光"

    相关文章

      网友评论

          本文标题:Jenkins自动化打包上传蒲公英、fir

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