搭建Jenkins環境
安裝jenkins(需要安裝java環境)
從jenkins官網下載或者是從清華大學開源映象網站進行下載下載地址
我自己安裝的jenkins的包版本是jenkins-2.121.1.pkg
安裝完成後,Safari可能會自動開啟,如果沒有自動開啟,開啟瀏覽器,輸入http://localhost:8080
如果頁面提示不能連線伺服器的錯誤,重啟電腦。然後再輸入http://localhost:8080進入登入頁面。
根據提示,找到/Users/Shared/Jenkins/Home/ 這個目錄,找到secrets檔案,顯示簡介,設定所有人都可以讀與寫的許可權,並找到initialAdminPassword檔案,同樣放開許可權,複製出密碼,登入進去,一路安裝過來,輸入使用者名稱、密碼、郵件等。最後點選Save and Finish。
jenkins打包的相關外掛
安裝這幾個外掛,並且重啟jenkins,下面是幾個jenkins的相關東西
1、重啟Jenkies
http://localhost:8080/restart
2、重新載入配置資訊
http://localhost:8080/reload
複製程式碼
證照管理外掛
注 developer只是一個用於測試開發的證照,password 一定要填寫正確的鑰匙串的密碼,Code Signing Identity 是從鑰匙 找到相應的證照,然後顯示簡介複製來,這 Identities少要填兩項,是因為這放個的話後的設定Code Signing Identity能動對應上。
/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles
複製程式碼
移動複製相關檔案
把需要的檔案移動到對用目錄下
一 、將/Users/使用者名稱/Library的MobileDevice資料夾拷貝到/Users/Shared/Jenkins/Library下
注意:是將MobileDevice這個資料夾拷貝過去,而不是MobileDevice裡的檔案,/Users/Shared/Jenkins/Library 目錄下是沒有MobileDevice這個資料夾,所以先建立一個MobileDevice資料夾。
在終端輸入
sudo mkdir /Users/Shared/Jenkins/Library/MobileDevice
sudo cp -r /Users/xxx/Library/MobileDevice/ /Users/Shared/Jenkins/Library/MobileDevice/
複製程式碼
如果沒有mobileDevice這個資料夾,應該就是沒有安裝xcode
二 、將/Users/使用者名稱/Library/Keychains/下的login.keychain及login.keychain-db這兩個檔案拷貝到/Users/Shared/Jenkins/Library/Keychains資料夾下面
注意:Mac OS 10.12以下的沒有login.keychain-db這個檔案,只需要拷貝login.keychain檔案。
複製程式碼
在終端輸入:
cd /Users/Shared/Jenkins/Library/
sudo mkdir Keychains
sudo cp /Users/xxx/Library/Keychains/login.keychain ./Keychains/
sudo cp /Users/xxx/Library/Keychains/login.keychain-db ./Keychains/
複製程式碼
再將這個login.keychain拷貝到桌面上 如果沒有login.keychain,請把login.keychain -db改為login.keychain
三 、 鑰匙串許可權、~/Library許可權以及電腦使用者管理許可權
點選顯示簡介,更改相關許可權
四 、 找到Library資源庫資料夾,設定共享與訪問許可權,everyone讀與寫都可以,並且應用於下層目錄
開始構建專案
構建操作,起名字點選輸入一個任務名稱,選擇構建一個自由風格
git拉取程式碼,並且把相關git相關上傳到全域性變數
把這個東西作為全域性變數複製到對應的地方
Keychains and Code Signing Identities
注意第一次選擇,可能不會出現Code Signing Identity,這個時候,儲存專案再退出來後再進去就是可以看到了
上傳蒲公英的相關操作
fastlane搭建
fastlane 介紹
fastlane 是一款為 iOS 和 Android 開發者提供的自動化構建工具,它可以幫助開發者將 App 打包、簽名、測試、釋出、資訊整理、提交 App Store 等工作完整的連線起來,實現完全自動化的工作流,如果使用得當,可以顯著的提高開發者的開發效率。
依賴環境: Xcode7+ macOS or Linux with Ruby 2.0.0 +
安裝fastlane
$ sudo gem install fastlane
如果報錯:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/commander
使用: sudo gem install -n /usr/local/bin fastlane
複製程式碼
cd到對應的目錄,使用fastlane init 我選擇的是4。目錄的結構是
fastlane的檔案程式碼操作 注意:一定要安裝執行下面的命令
fastlane add_plugin pgyer
複製程式碼
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
# 定義fastlane版本號
fastlane_version “2.99.0”
# 定義打包平臺
default_platform :ios
lane :beta do
gym(
#輸出的ipa名稱
output_name:”QKiOS_IPA”,
# 是否清空以前的編譯資訊 true:是
clean:true,
# 指定打包方式,Release 或者 Debug
configuration:"Debug",
# 指定打包所使用的輸出方式,目前支援app-store, package, ad-hoc, enterprise, development
export_method:"development",
# 指定輸出資料夾
output_directory:"./fastlane/build",
)
pgyer(api_key: "蒲公英的api_key", user_key: "蒲公英的user_key")
複製程式碼
Jenkins的shell指令碼
先執行pod操作,如果是使用cocoapod安裝的話
#bin/bsah - l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
cd $WORKSPACE/
echo ++++++++++++++++++
#/usr/local/bin/pod install
/usr/local/bin/pod update --verbose --no-repo-update
echo begin
echo ++++++++++++++++++
複製程式碼
解鎖keychain
#bin/security - l
/usr/bin/security unlock-keychain -p q1234 ~/Library/Keychains/login.keychain-db
複製程式碼
fastlane 進行打包
#bin/bsah - l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
cd $WORKSPACE/
pwd
PATH="/usr/local/bin:$PATH"
# 進行打包操作
/usr/local/bin/fastlane beta
複製程式碼
整合成功的顯示
整合成功的控制檯輸出
jenkin成功的標誌
整合的時候遇到的問題
- CodeSign 簽名失敗,執行解鎖keychain的shell指令碼
CodeSign /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/QKiOS-ceqftwbkurbqjxfyflrsrfuzezvs/Build/Intermediates.noindex/ArchiveIntermediates/QKiOS/InstallationBuildProductsLocation/Applications/QKiOS.app```複製程式碼