iOS自動(dòng)化打包部署

一、安裝環(huán)境
操作系統(tǒng)

image.png

關(guān)閉系統(tǒng)保護(hù),否則/usr/local/文件夾會(huì)報(bào)權(quán)限錯(cuò)誤
關(guān)閉方法:(參考:http://blog.csdn.net/jackymvc/article/details/78256120
1.重啟Mac,按住Command + R鍵直到Apple Logo出現(xiàn),進(jìn)入Recovery Mode模式(我感覺我是按了好半天)
2.點(diǎn)擊工具里的Terminal(終端)
3.輸入csrutil disable,之后回車
4.重啟Mac
5.重啟完成后,終端中輸入 sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local
成功執(zhí)行,沒有報(bào)操作不允許了
(如果想重新開啟安全設(shè)置,則重復(fù)1、2步驟,輸入csrutil enable就可以了)
二.安裝fastlane
1.執(zhí)行指令:
①sudo gem install -n /usr/local/bin fastlane
②xcode-select --install
image.png

2.安裝結(jié)束后,在終端輸入
fastlane --version
以驗(yàn)證安裝成功,可以看到版本信息,我的是fastlane 1.64.0。
三、安裝Jenkins
確保計(jì)算機(jī)java環(huán)境為java8(jdk1.8),我的mac環(huán)境為java9,安裝后在使用功能時(shí)各種報(bào)java錯(cuò)誤,切換環(huán)境方法步驟1中會(huì)介紹到。
1.去官網(wǎng)下載war包https://jenkins.io,下載完成后,打開終端,進(jìn)入到 war 包所在目錄,執(zhí)行以下命令:
java -jar jenkins.war --httpPort=8080
待Jenkins啟動(dòng)后,在瀏覽器頁面輸入以下地址:
http://localhost:8080
這樣就打開Jenkins管理頁面了。

注意:使用其他方式安裝的 Jenkins 可能導(dǎo)致后續(xù)步驟失敗,請確認(rèn)使用我們推薦的方式來安裝 Jenkins。
提示:在訪問的jenkins頁面中出現(xiàn)java錯(cuò)誤,解決方法如下(參考:http://www.lxweimin.com/p/072981dc9cc2
①執(zhí)行brew cask install java8 安裝java8的環(huán)境
②然后通過.brofile文件切換java環(huán)境為java8
切換指令如下
cd ~
open -e .bash_profile #打開.bash_profile文件
如果沒有.bash_profile則新建
cd ~
touch .bash_profile #新建.bash_profile文件
ls -a #查看文件是否創(chuàng)建成功
在打開的.bash_profile文件中添加下面內(nèi)容然后關(guān)閉

#添加JDK的環(huán)境變量
export JAVA_6_HOME=/Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
#默認(rèn)JDK1.8
export JAVA_HOME=$JAVA_8_HOME
#alias命令動(dòng)態(tài)切換JDK版本  
alias jdk6="export JAVA_HOME=$JAVA_6_HOME" 
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"

cd ~
source .bash_profile #設(shè)置配置立即生效

最后關(guān)閉所有終端窗口,到war文件所在的目錄下 執(zhí)行 java -jar jenkins.war --httpPort=8080

四、配置
1.自動(dòng)化構(gòu)建設(shè)置
在 Jenkins 中,所有的任務(wù)都是以“item”為單位的。接下來我們就新建一個(gè) iOS 的項(xiàng)目來開始自動(dòng)化構(gòu)建。點(diǎn)擊“新建”,輸入 item 的名稱,選擇“構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目”,然后點(diǎn)擊“OK”。


image.png

2.配置git
使用用戶名密碼的Credentials,ssh的拉git總是失敗(我們有兩組人進(jìn)行打包部署的調(diào)研,得出的結(jié)論)


2980982-1feb743fda6f99e5.png

3.配置腳本
在“構(gòu)建”選項(xiàng)里增加一個(gè)Execute command,內(nèi)容為:
cd /Users/david/.jenkins/workspace/B-dev/OurAppName
bundle exec fastlane gym --export_method development --output_name appcDebug
curl -F "file=@appcDebug.ipa" -F "uKey=xxxxx" -F "_api_key=xxxxx" https://qiniu-storage.pgyer.com/apiv1/app/upload
4.構(gòu)建出發(fā)器
選中Build periodically,內(nèi)容為:H 17 * * 1-5,周一到周五 下午5點(diǎn)執(zhí)行打包
3.fastlane配置
在項(xiàng)目文件夾下執(zhí)行:fastlane init 根據(jù)要求輸入對應(yīng)值即可
4.構(gòu)建時(shí)fastlane出錯(cuò)
錯(cuò)誤一:
PluginLoading: Required plug-in compatibility UUID B395D63E-9166-4CD6-9287-6889D507AD6A for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XActivatePowerMode.xcplugin' not present in DVTPlugInCompatibilityUUIDs
處理(參考:http://www.lxweimin.com/p/42dd9f014394):
①打開終端,獲取DVTPlugInCompatibilityUUID
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
終端會(huì)輸出獲取到的DVTPlugInCompatibilityUUID
②將這個(gè)UUID加入各個(gè)插件的info.plist
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add B395D63E-9166-4CD6-9287-6889D507AD6A
(最后的字符串需修改為上一步打印的結(jié)果)
③重啟Xcode,彈出警告選擇Load Bundles
錯(cuò)誤二:fastlane detected a Gemfile in the current directory
however it seems like you don't use bundle exec
to launch fastlane faster, please use
bundle exec fastlane gym --export_method development --output_name appcDebug
處理:

  1. 安裝bundle
    sudo gem install bundle
    2.工程的根目錄下,添加Gemfile文件:
    source "https://rubygems.org"
    gem "fastlane"
    gem "cocoapods"
    3.然后執(zhí)行,bundle install即可,執(zhí)行完同時(shí)會(huì)生成一個(gè)Gemfile.lock文件
    4.修改腳本為
    bundle exec fastlane gym --export_method development --output_name appcDebug
    錯(cuò)誤三:Multiple schemes found but you haven't specified one
    處理:用xcode打開/Users/david/.jenkins/workspace下的項(xiàng)目,product-scheme-manager scheme ,將項(xiàng)目xcode 的share勾選(或者 刪掉xcode項(xiàng)目文件和pod項(xiàng)目文件xcuserdata里除主項(xiàng)目以外的scheme)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容