Jenkins配置

作者: libtinker | 来源:发表于2018-07-13 15:45 被阅读0次

    一、安装Jenkins

    • 安装前准备:(安装JDK8.0tomcat下载
      1.jdk安装没啥说的,一直按下一步即可完成。
      2.tomcat下载后需要把解压文件夹复制到(/Users/计算机名/Library/)目录下,具体详情请看Mac系统安装和配置tomcat步骤详解
    • jenkins下载,安装有两种方式,具体如下:
      1.下载MAC OS X 也就是pkg包解压安装
      2.下载.war文件,并将jenkins.war拷贝到一个tomcat的webapps目录下,启动本台tomcat,最后访问jenkins.war工程http://localhost:8888/jenkins/(建议这种方式安装,我是按.war安装的)。

    二、安装jenkins插件

    Jenkins主页 点击左侧栏“系统管理”>>>>>>>“管理插件”>>>>>>选择和上传自己需要的插件(我安装的是Xcode Integration和# Keychains and Provisioning Profiles Plugin)
    例如下图:


    tuyi.png

    三、配置证书

    Jenkins主页 点击左侧栏“系统管理”>>>>>>>“Keychains and Provisioning Profiles Management”
    需要上传login.keychain文件,该文件获取方法,在终端中输入

    cd ~/Library/Keychains
    

    在终端键入ls详见下图


    tuer.png

    然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果如下图,蓝色框内的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles

    接着 “系统管理”>>>>“系统设置”>>>>>全局属性 >>>>Provisioning Profiles Directory Path :
    通过.war方式安装的jenkins路径是:${HOME}/Library/MobileDevice/Provisioning Profiles
    通过.war方式安装的jenkins 路径是默认的,只需要填写一下密码就可以了(就是电脑开机密码)。

    注意:需要把相关的证书放到Keychains的系统目录下,证书默认都在登录目录下

    企业微信截图_e54da8f0-a968-4de2-97c1-5699e93a5943.png

    四、配置项目

    创建一个任务>>>>>点击任务>>>>点击任务栏左侧的“配置”,配置分为6步,如下图


    tuliu.png

    1.General


    tu7.png
    parm.png

    2.源码管理


    tu8.png

    3.构建触发器


    tu9.png
    4.构建环境(我没选)
    5.构建(这个比较操蛋,因为Jenkins对现在的Xcode9插件兼容性不好,打不了包,所以我们使用了xcodebuild打包,所以我直接选“执行 shell”进行构建)

    Pod脚本(需要把ProjectName换成自己项目的名字)

    #bin/bsah - l
    
    export LANG=en_US.UTF-8
    
    export LANGUAGE=en_US.UTF-8
    
    export LC_ALL=en_US.UTF-8
    
    cd $WORKSPACE/ProjectName
    
    /usr/local/bin/pod update --verbose --no-repo-update
    #配置json文件(项目通过这个文件选择环境、加密de)
    echo "{\"environmentType\":\"$environmentType\",\"isEncrypt\":\"$isEncrypt\"}" > cofig.json
    

    构建脚本

    #工程名字(Target名字)
    Project_Name="XXXXXX"
    #配置环境,Release或者Debug
    Configuration="Release"
    
    #AdHoc版本的Bundle ID
    AdHocBundleID="com.xxxxxx.xxx"
    
    #加载各个版本的plist文件(cd $WORKSPACE/ProjectName)复制(ADHOCExportOptionsPlist)文件到Project文件下
    ADHOCExportOptionsPlist=./ADHOCExportOptionsPlist.plist
    
    ADHOCExportOptionsPlist=${ADHOCExportOptionsPlist}
    
    ADHOCCODE_SIGN_IDENTITY="iPhone Distribution: Beijing xxxxxx"
    ADHOCPROVISIONING_PROFILE_NAME="xxxxxxx-xxxxxx-xxxxxx-ba4a-xxxxxxx"
    
    #adhoc脚本
    xcodebuild -workspace $Project_Name.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath build/$Project_Name-adhoc.xcarchive clean 
    
    
    xcodebuild archive -workspace $Project_Name.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath build/$Project_Name-adhoc.xcarchive CODE_SIGN_IDENTITY="${ADHOCCODE_SIGN_IDENTITY}" PROVISIONING_PROFILE="${ADHOCPROVISIONING_PROFILE_NAME}" PRODUCT_BUNDLE_IDENTIFIER="${AdHocBundleID}"  
    
    
    xcodebuild -exportArchive -archivePath build/$Project_Name-adhoc.xcarchive -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath build/$Project_Name-adhoc.ipa
    

    ipa上传蒲公英:

    #把ipa包上传到蒲公英
    curl -F 'file=@/Users/name/.jenkins/workspace/Project/build/Project-adhoc.ipa/Project.ipa' -F '_api_key=b27f12cd8c5d6b09e580dffxxxxxxxxx' https://www.pgyer.com/apiv2/app/upload
    

    上传svn(这个也比较操蛋最新版的jenkins不支持svn插件了,so)

    #bin/bsah - l
    
    export LANG=en_US.UTF-8
    
    export LANGUAGE=en_US.UTF-8
    
    export LC_ALL=en_US.UTF-8
    
    Project_Name="Name"
    
    cd /Users/apple/.jenkins/workspace/$Project_Name/build
    
    if [ ! -d "Users/apple/.jenkins/workspace/$Project_Name/build/测试" ]; then
        svn co svnUrl --depth=empty --username uesrname --password *******
    fi
    
    cd /Users/apple/.jenkins/workspace/$Project_Name/build/测试
    
    find . -name "*.ipa" -type f -print -exec rm -rf {} \;
    
    svn update  
    
    cp -r /Users/apple/.jenkins/workspace/$Project_Name/build/$Project_Name-adhoc.ipa/$Project_Name.ipa /Users/apple/.jenkins/workspace/$Project_Name/build/测试/$Project_Name$BUILD_NUMBER-App.ipa
    
    svn add *
    
    svn ci -m "版本号为2.4.0"
    

    6.构建后操作(看兴趣,不搞也可以)
    配置个E-mail notification


    peizhiImg.png
    emailImg.png

    这个多说一句,这次填的密码是动态授权码而不是账户密码。
    最后保存走人。
    Editable E-mail notification也差不多,这里就不写了,如果有疑问请@我

    • 归档成品
      **/.ipa
      A03BC082-B5D5-479B-87FE-F8D18BC3199F.png

    五、 jenkins使用

    选中项目>>>左边工具栏“立即构建”


    tu11.png

    最后去工作区 按着你设置的路径找到 ipa文件下载就下来使用,或者去svn找你上传的ipa文件,或者去蒲公英查找

    • 注意:最后多说一句,如果你的ObjectC项目中使用了动态库,那么脚本可能就打不出ipa包了。这是因为动态库不编译在二进制文件中。

    相关文章

      网友评论

        本文标题:Jenkins配置

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