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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM