iOS 2019最新Jenkins集成gitblit实现自动打包攻略

集成Jenkins手动打包

  1. 下载地址
    [https://jenkins.io/zh/download/]

  2. JDK 8及以上
    [https://download.oracle.com/otn/java/jdk/8u212-b10-demos/59066701cf1a433da9770636fbc4c9aa/jdk-8u212-macosx-x86_64-demos.zip]

  3. 安装完后默认启动
    [http://localhost:8080]

  4. 安装推荐插件


    image.png
  5. 安装Xcode相关插件

    1.Keychains and Provisioning Profiles Management
    2.Xcode integration
    
  6. 配置Keychains and Provisioning Profiles Management
    点击选择文件分别上传证书和描述文件,可添加多个


    image.png
  7. 复制证书和描述文件到Jenkins目录
    (1)描述文件目录:/Users/用户名/Library/MobileDevice/Provisioning Profiles
    (2)证书目录:/Users/用户名/Library/Keychains/login.keychain(注意:要把keychain-db改名为keychain
    (3)jenkins目录:/用户/共享/Jenkins/Library/

    image.png

    image.png
  8. 创建任务


    image.png
  9. 源码管理
    如果使用ssh,则需要把私钥填写下
    如果生成过,则目录在/Users/apple/.ssh/id_rsa,如果没生成过,则通过命令生成:

ssh-keygen -t rsa
image.png

点击添加,填写Git账号


image.png

填写ssh私钥


image.png
  1. 构建环境
    勾上keychain和provisioning profile


    image.png
  2. 构建:选择shell脚本

    ###############设置需编译的项目配置名称
    buildConfig="Release" #编译的方式,有Release,Debug,自定义的AdHoc等
    target_name="<这里是targetname>"  
    workspace_name="${target_name}.xcworkspace" 
    scheme="$target_name"  
    ExportOptionsPlistPath="./ExportOptions.plist"
    
    scheme_name="这里是schemename"
    
    # 强制删除旧的文件夹
    #rm -rf ./$scheme_name-IPA
    # 指定输出ipa路径
    export_path=./$scheme_name-IPA
    # 指定输出归档文件地址
    export_archive_path="$export_path/$scheme_name.xcarchive"
    # 指定输出ipa地址
    export_ipa_path="$export_path"
    
    isWorkSpace=true  #判断是用的workspace还是直接project,workspace设置为true,否则设置为false
    
    echo "~~~~~~~~~~~~~~~~~~~开始编译~~~~~~~~~~~~~~~~~~~"
    
    ###############进入项目目录
    cd ${PWD}/<项目名称>
    #rm -rf ./build
    
    ###############获取版本号,bundleID
    infoPlist="${PWD}/<这里是targetname>/Info.plist"
    
    bundleVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
    bundleIdentifier=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $infoPlist`
    bundleBuildVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $infoPlist`
    ###############开始编译app
    echo "版本信息"
    echo $bundleVersion
    echo $bundleIdentifier
    echo $bundleBuildVersion
    echo -workspace
    
    security unlock-keychain -p <电脑开机密码> ~/Library/Keychains/login.keychain
    
    echo "~~~~~~~~~~~~~~~~~~~pod install~~~~~~~~~~~~~~~~~~~"
    
    export LANG=en_US.UTF-8
    export LANGUAGE=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    
        #第一次执行了pod之后就不用再次执行了
    pod install --verbose --no-repo-update  
    echo  "开始编译workspace...." 
    
    
    xcodebuild archive -workspace "$workspace_name" -scheme "$scheme" -configuration $buildConfig -archivePath $export_archive_path
    
    CODE_SIGN_IDENTITY="证书名称例如iPhone Distribution: xxxxxx. (7B9ZX5MLNC)" 
    PROVISIONING_PROFILE="描述文件编号例如e17c3d73-ed17-4cd1-a669-2e1759e3a5c6"
    
    echo "~~~~~~~~~~~~~~~~~~~ 编译完成~~~~~~~~~~~~~~~~~~~"
    echo "~~~~~~~~~~~~~~~~~~~ 开始打包~~~~~~~~~~~~~~~~~~~"
    
    echo "开始打包$projectName.app成$projectName.ipa....."
    echo "打包地址$export_archive_path"
    echo "输出地址$export_ipa_path"
    
    xcodebuild -exportArchive -archivePath $export_archive_path -exportPath $export_ipa_path -exportOptionsPlist $ExportOptionsPlistPath CODE_SIGN_IDENTITY=$CODE_SIGN_IDENTITY PROVISIONING_PROFILE=$PROVISIONING_PROFILE
    

集成gitblit自动打包

  1. 下载gitblit
    地址:[http://gitblit.com/]
    参考网站:
    (1)[https://blog.csdn.net/qq_40646143/article/details/79755144]
    (2)[https://www.cnblogs.com/toughlife/p/9821240.html]
    (3)[https://www.cnblogs.com/cudong/p/6526457.html]

    image.png

  2. 运行gitblit.sh文件


    image.png
  3. 登陆账号
    账号密码初始值:admin

  4. 创建版本库
    点击版本库->点击新建版本库


    image.png
  5. 配置ssh公钥
    (1)点击用户中心


    image.png

    (2)点击ssh keys,添加ssh key,如果生成过,则目录在/Users/apple/.ssh/id_rsa.pub,如果没生成过,则通过命令生成:

    ssh-keygen -t rsa
    
    image.png
  1. 配置jenkins.groovy文件,目录在/Users/apple/Documents/gitblit-1.8.0/data/groovy/jenkins.groovy,把jenkinsGitbaseurl改成自己项目的URL域名(不带仓库名字)


    image.png

    image.png
  2. 配置gitblit的post-receive 脚本,选择gitblit仓库的对应设置页面,选择刚才改好的jenkins.groovy并保存


    image.png
  3. Jenkins配置触发器


    image.png

大功告成!!!接下来每次提交代码至master分支就可以出发打包啦

你可能感兴趣的:(iOS 2019最新Jenkins集成gitblit实现自动打包攻略)