美文网首页
iOS开发Jenkins+Gitlab+shell+蒲公英,持续

iOS开发Jenkins+Gitlab+shell+蒲公英,持续

作者: pengshuangta | 来源:发表于2019-04-12 17:33 被阅读0次

    一、摘要:作为一个开发人员,想想如果配置了Jenkins,就能一键打包发布到蒲公英或者fir,是不是美滋滋呢!

    主要优点:
    (1)对于开发人员来说,测试什么时候想要测试包,我只要一键构建,它就自动打包发布到蒲公英上去,是不是美滋滋;
    (2)对于产品质量来说,持续集成自动打包,可以减少很多低级错误,如:证书配置,编译错误,安装问题等,因为这些问题在构建的时候就帮你做了检查;
    (3)对于测试人员来说,测试用例,自动测试,自动跑回归测试,这方面的问题,我还没深入研究。

    二、步骤

    四大步骤梗概:
    1、安装Jenkins并启动
    2、下载插件
    3、创建任务
    4、配置任务

    四大步骤详细配置:

    1、安装Jenkins并启动:
    1.1、使用homebrew安装(如果已经安装,跳过此步),打开终端输入如下:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    1.2、安装 Jenkins,打开终端输入如下:

    brew install jenkins    
    

    1.3、启动 Jenkins,打开终端输入如下:

    jenkins    
    
    证明启动成功
    1.4、访问Jenkins:当Jenkins启动后,浏览器中输入 http://localhost:8080/
    1.5、打开浏览器之后需要创建用户,这里就不细讲了,具体可参考链接:创建Jenkins步骤
    2、下载插件
    2.1、系统设置-》插件管理-》Available(可选插件)-》Filter分别所说安装如下三个插件:
    (1) GitLab
    (2) Xcode integration
    (3). Keychains and Provisioning Profiles Management
    image.png
    image.png
    image.png
    3、创建任务:
    3.1、
    image.png
    image.png

    4、配置任务:
    4.1、设置源码管理(这里我们使用的是git)

    注意:
    • 这里需要注意的是Repository URL这里填写的是ssh下的git地址
    • 没有选择添加的credentials(凭据)时,输入Repository URL会有一堆红色的报错


      ssh下的git地址
      没有选择凭据时会报错

      4.2、添加凭据

    注意:
    • ID一栏在填写key的时候的会自动补齐
    • private key的获取方式,记得复制key的时候连BEGIN开始和结尾的都要复制上
    终端输入 open  ~/.ssh/id_rsa
    
    image.png
    image.png
    image.png
    image.png

    4.3、build environment(构建环境)

    注意:
    • 先配置:Keychains and Code Signing Identities
    • 如果login.keychain-db上传不了文件,把-db去掉在上传
      4.3.1、配置Keychains and Code Signing Identities:
      1、系统设置-》Keychains and Code Signing Identities


      image.png
      image.png

      2、在/Users/Shared/Jenkins文件夹下如图:
      如果不存在Keychains和MobileDevice:
      1、直接将/Users/‘你的用户名’/Library/Keychains文件夹拷贝到/Users/Shared/Jenkins文件夹下;
      2、直接将/Users/‘你的用户名’/Library/MobileDevice文件夹拷贝到/Users/Shared/Jenkins文件夹下;


      image.png
      3、Code Signing Identities填写,到钥匙串中找到对应的证书名
      image.png
      image.png
      4.4、build(构建方式选择shell,最开始尝试使用的是xcode配置比较麻烦,而且配置一致不成功,网上有说是因为xcode9.0以上版本和Jenkins搭配存在问题,但是本人没有亲自去验证,索性直接使用了shell来构建了)
      image.png
      image.png
    shell命令:
    ## !/bin/sh
    ## 项目名
    TARGET_NAME=jenkins_demo
    ## Scheme名
    SCHEME=jenkins_demo
    ##=======================
    ## 编译类型
    BUILD_TYPE=Debug
    ## 当前目录
    SORCEPATH=${WORKSPACE}
    ## workspace名
    SPACE=${WORKSPACE}/${TARGET_NAME}.xcworkspace
    ##xcarchive文件的存放路径
    ARCHIVEPATH=$SORCEPATH/build/$SCHEME.xcarchive
    ## ipa文件的存放路径
    EXPORTPATH=$SORCEPATH/build/$SCHEME
    ## ExportOptions.plist文件的存放路径
    EXPORTOPTIONSPLIST=$SORCEPATH/build/ExportOptions.plist
    ## 导出后的ipa路径
    EXPORTPATHIPA=$SORCEPATH/build/$SCHEME/$SCHEME.ipa
    echo -e "============First Build Clean============"
    ## 清理缓存
    xcodebuild clean -workspace $SPACE -scheme ${SCHEME} -configuration ${BUILD_TYPE}
    echo -e "============Build Clean============"
    ## 输出关键信息
    echo -e "  TARGET_NAME    : ${TARGET_NAME}"
    echo -e "  BUILD_TYPE    : ${BUILD_TYPE}"
    echo -e "  SORCEPATH    : ${SORCEPATH}"
    echo -e "  ARCHIVEPATH    : ${ARCHIVEPATH}"
    echo -e "  EXPORTPATH    : ${EXPORTPATH}"
    echo -e "  EXPORTOPTIONSPLIST    : ${EXPORTOPTIONSPLIST}"
    echo -e "============Build Archive============"
    ## 导出archive包
    xcodebuild archive -workspace ${SPACE} -scheme ${SCHEME} -archivePath $ARCHIVEPATH
    echo -e "============Build Archive Success============"
    echo -e "============Export IPA============"
    ## 导出IPA包
    xcodebuild -exportArchive -archivePath $ARCHIVEPATH -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}
    echo -e "============Export IPA SUCCESS============"
    ## 编译完成时间 20181030_0931
    BUILD_DATE="$(date +'%Y%m%d_%H%M')"
    ## info.plist路径
    PROJECT_INFOPLIST_PATH="${SORCEPATH}/${TARGET_NAME}/Info.plist"
    ## 取版本号
    BUNDLESHORTVERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${PROJECT_INFOPLIST_PATH}")
    ## 取build值
    VERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${PROJECT_INFOPLIST_PATH}")
    ## ipa更名规则  项目名V版本_年月日_时分
    IPANAME="${TARGET_NAME}V${BUNDLESHORTVERSION}_${BUILD_DATE}.ipa"
    ## 更名后ipa路径
    EXPORTPATHNEWIPA=$EXPORTPATH/$IPANAME
    echo -e "============Export end :${BUILD_DATE}============"
    echo -e "============IPA Old Name: ${EXPORTPATHIPA}============"
    echo -e "============IPA New Name: ${EXPORTPATHNEWIPA}============"
    ## IPA更名
    cp $EXPORTPATHIPA $EXPORTPATHNEWIPA
    echo -e "============Create New Name Success============"
    ## 删除老IPA
    rm $EXPORTPATHIPA
    echo -e "============Delete Old Name Success============"
    ###
    ###  上传蒲公英
    ###
    #蒲公英上的User Key
    uKey="xxx"
    #蒲公英上的API Key
    apiKey="xxx"
    #要上传的ipa文件路径
    IPA_PATH=$SORCEPATH/build/$TARGET_NAME/$IPANAME
    #执行上传至蒲公英的命令,这句不需要修改
    curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" https://www.pgyer.com/apiv1/app/upload
    

    三、参考链接(安装、配置主要参考链接一,shell命令主要参考链接三)

    一:Jenkins+Gitlab+Xcode+蒲公英
    二:Jenkins+Gitlab+Xcode+蒲公英/fir
    三:shell命令

    四、以上是对自己配置jenkins过程的一个记录,欢迎有问题的小伙伴留言一起探讨进步,如果文章对你有帮助请给个小❤️❤️❤️。

    相关文章

      网友评论

          本文标题:iOS开发Jenkins+Gitlab+shell+蒲公英,持续

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