• MAC Jenkins安装 + Xcode + 蒲公英 + Testflight


    工具准备

    Jenkins 下载地址
    JDK 下载地址
    题主系统:macOS Mojave 10.15.5

    开始安装

    官方文档:https://www.jenkins.io/zh/doc/book/installing/

    Jenkins安装有两种方式

    第一种是从Jenkins官网下载 .pkg的安装包,我下载的版本是:jenkins-2.222.4.pkg。但是这种方式安装的Jenkins目录是在:/Users/Shared/Jenkins目录下,而且会创建一个jenkins用户,当我们打包的时候会出现各种权限不足问题导致打包失败。

    解决方案是修改目录权限

    Finder 前往文件夹:/Users/Shared/Jenkins/Home
    修改secrets文件夹访问权限如下:

    或者是迁移了jenkins的目录来解决权限问题,不推荐使用这种方式安装。

    第二种是使用homebrew安装,这种方式安装的目录在:/Users/mjb/.jenkins,(mjb是我的用户名)不会出现权限的问。
    建议使用第二种方式安装。
    下面详细介绍下安装步骤。

    homebrew安装方式

    安装java环境

    下载JDK安装  :https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

    安装完成,进入下一步安装homebrew

    如果没有安装homebrew的话,需要先安装homebrew

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    mac安装homebrew失败怎么办?
    运行下面自动脚本(已经全部替换为国内地址):
    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
    

    执行命令开始安装jenkins

    安装最新版本
    
    brew install jenkins
    
    安装 LTS 版本
    
    brew install jenkins-lts
    

    启动jenkins可以直接使用下面的命令:

    最新版本是 jenkins
    LTS版本是 Jenkins-lts
    

    注意:这种方式配置的jenkins,需要手动启动jenkins。

    Jenkins安装完是用浏览器直接打开 http://localhost:8080,那么应该是如下的显示界面

    根据页面提示获取密码:打开终端输入
    把显示的密码复制粘贴至管理员密码中,进入自定义jenkins界面

    初次使用选择 安装推荐的插件 

    安装插件完成后新建管理员用户:

     实例配置这里不做修改直接保存

     

    接下里是安装必要的插件,推荐的插件不够

    系统管理 - > 插件管理 - >可选插件 - > 过滤 - >选择插件 -> 直接安装
    Xcode integration 必须的 这个是配置Xcode 编译项的Keychains and Provisioning Profiles Management 证书管理Email Ext Recipients Column Plugin 邮件
    CocoaPods Jenkins Integration
    GitLab
    GitLab Authentication

    配置Keychains and Provisioning Profiles Management

    cd ~/Library/Keychains

    macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以复制出来删除-db,也可以创建一个快捷方式名字叫做login.keychain,upload就好了。(上传keychain,路径用自己改名后的那个)

    然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果
    Provisioning Profiles Directory Path
    的是固定格式的/Users/用户名/Library/MobileDevice/Provisioning Profiles/
    注 有时候 这个地方 文件夹 会没有权限

    系统设置 配置

     

    Default Subject 【构建通知】: $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
    
    Default Content
    
    <!DOCTYPE html>  
    <html>  
    <head>  
    <meta charset="UTF-8">  
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>  
    </head>  
      
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
        offset="0">  
        <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
            <tr>  
                <td>各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</td>  
            </tr>  
            <tr>  
                <td><br />  
                <b><font color="#0B610B">构建信息</font></b>  
                <hr size="2" width="100%" align="center" /></td>  
            </tr>  
            <tr>  
                <td>  
                    <ul>  
                        <li>项目名称 : ${PROJECT_NAME}</li>  
                        <li>构建编号 : 第${BUILD_NUMBER}次构建</li>  
                        <li>触发原因: ${CHANGES}</li>  
                        <li>构建状态: ${BUILD_STATUS}</li>  
                        <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
                        <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>  
                        <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>  
                        <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>  
                    </ul>  
                </td>  
            </tr>  
        </table>  
    </body>  
    </html>  
    

    开始配置任务

    然后创建一个任务,创建了两个任务上传蒲公英 和 testTestflight  。

         可以选择保留版本 时间 和 个数 这里 其实 选 丢弃旧的构建

        这里填上git 地址 分支
        Build Triggers 

      触发构建的方式
    其实轮询 就行 检查到有新的 改动 才会打包

     

     

    这里可以任意勾选 执行步骤 例如 其实因为个推 bug 和 修改build 号的需求 且 需要pod install 就选了 先执行 shell 脚本 (这个脚本需要按照自己项目来写)

    pod install --verbose --no-repo-update
    
    buildMainPlist="/Users/xiexing/.jenkins/workspace/app/MarkDaily/Info.plist"
    buildServicePlist="/Users/xiexing/.jenkins/workspace/app/NotificationService/Info.plist"
    buildNumber=$(date +"%m%d%H%M")
    
    /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$buildMainPlist"
    /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$buildServicePlist" 

    选择 Xcode 插件

    接下来 就是xcode 的配置 自行选择就可

    配置:

     Configuration :Release

    Xcode Schema :File

     

    注 $workspace 这里是因为 那个 蒲公英插件(他不能识别文件夹) 才这样 写

    Testflight 的 就可以写

     

     这一项记得勾选

    Build就完成设置了

    接下里 就到 上传了

    蒲公英 可以查看

    https://www.pgyer.com/doc/view/jenkins_ios 配置

     Testflight 选择shell 脚本上传
    最后添加一个shell 脚本就行

    ALTOOLPATH=/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool
    
    IPAPATH="/Users/xiexing/.jenkins/workspace/APP-TESTFLIGHT/build/XXXX.ipa"
    
    APPID="XXXX"
    
    APPPASSWORD="XXX"
    
    "${ALTOOLPATH}" --validate-app -f "${IPAPATH}" -u "${APPID}" -p "${APPPASSWORD}" --output-format xml
    
    
    "${ALTOOLPATH}" --upload-app -f "${IPAPATH}" -u "${APPID}" -p "${APPPASSWORD}" --output-format xml
    

     最后一步 发送邮件

    这里其实 就是采用 我们在设置 上 填好的
    Project Recipient List:$DEFAULT_RECIPIENTS $DEFAULT_REPLYTO
    Project Reply-To List:$DEFAULT_REPLYTO $DEFAULT_RECIPIENTS
    Content Type:Html
    Default Subject:$DEFAULT_SUBJECT Testflight
    Default Content :$DEFAULT_CONTENT
    

    最后点击 保存
    两个任务 只有build 和 上传 不一样 其他统一
    可以先手动构建一下 看看成不成功

    详细文档查看:https://www.jianshu.com/p/cfa42d187c49

    https://www.jianshu.com/p/cb188b8033ad

  • 相关阅读:
    团队冲刺第三天
    NoSQL数据库基础概述
    团队开发冲刺第九天
    团队开发冲刺第八天
    团队开发冲刺第七天
    团队开发冲刺第六天
    团队开发冲刺第五天
    团队开发冲刺第四天
    团队开发冲刺第三天
    第九周总结
  • 原文地址:https://www.cnblogs.com/gucb/p/13086305.html
Copyright © 2020-2023  润新知