一赌髓、傳統(tǒng)打包的痛點(diǎn)
如果你有一臺(tái)配置較高的MBP从藤,沖杯咖啡回來催跪,包已經(jīng)打好了;如果你用的是配置較低的mac mini夷野,去咖啡店喝杯咖啡回來懊蒸,你的包還不定能打好;打包過程中悯搔,你唯一的做的就是等待骑丸,等待,待...
切換分支不方便
本來需要的是Release環(huán)境妒貌,你卻選了Debug環(huán)境
打包完成后通危,需要手動(dòng)上傳到fir或者pgyer
-
09:00,測(cè)試人員:親灌曙,給我打個(gè)包菊碟;
11:00,測(cè)試人員:你這里有個(gè)bug在刺,修復(fù)下逆害,然后給我打個(gè)包;
15:00蚣驼,測(cè)試人員:你這個(gè)按鈕往右多偏移了5個(gè)像素魄幕,改完打個(gè)包;
17:00颖杏,測(cè)試人員:我要個(gè)正式環(huán)境的包
二纯陨、Fastlane
Fastlane是一套可以簡(jiǎn)化iOS和Android開發(fā)人員繁瑣任務(wù)的自動(dòng)化工具,如生成屏幕截圖输玷、處理配置文件以及發(fā)布應(yīng)用程序队丝。Fastlane的詳細(xì)使用,可以參考其使用文檔欲鹏。
1.安裝Xcode命令行開發(fā)者工具
xcode-select --install
如果沒有安裝机久,會(huì)彈出安裝提示
2.安裝Fastlane
sudo gem install fastlane -NV
報(bào)錯(cuò)
改為
sudo gem install -n /usr/local/bin fastlane -NV
3.初始化Fastlane
cd 項(xiàng)目目錄
fastlane init
初始化時(shí)會(huì)出現(xiàn)4個(gè)選項(xiàng):
1.Automate screenshots:截圖
2.Automate beta distribution to TestFlight:上傳到TestFlight
3.Automate App Store distribution:上傳到App Store
4.Manual setup - manually setup your project to automate your tasks:自定義
選擇3,輸入開發(fā)者賬號(hào)和密碼赔嚎,報(bào)錯(cuò)
因?yàn)槲矣玫氖瞧髽I(yè)證書膘盖,無法上傳到App Store,回滾后尤误,重新選擇4
按照提示Enter
4.完成后侠畔,項(xiàng)目目錄里會(huì)生成一個(gè)fastlane文件夾
Appfile用來存放App的bundleID和teamID,F(xiàn)astfile用來存儲(chǔ)打包的腳本损晤。
如果上傳到蒲公英软棺,需要安裝蒲公英的插件:
fastlane add_plugin pgyer
如果上傳到Fir,需要安裝Fir的插件:
fastlane add_plugin firim
Fastfile里我的參考腳本:
default_platform(:ios)
platform :ios do
desc "打Release包"
lane :Release do
gym(
clean:true, #打包前clean項(xiàng)目
export_method:"enterprise", #導(dǎo)出方式
configuration:"Release", #環(huán)境
output_directory:"./app", #ipa的存放目錄
output_name:get_build_number(), #輸出ipa的文件名為當(dāng)前的build號(hào)
export_xcargs: "-allowProvisioningUpdates" #Xcode 9及以上沒有權(quán)限獲取鑰匙串里面的證書尤勋,必須加上這個(gè)才能打包成功
)
#打包到蒲公英
pgyer(api_key: "c682339xxxxxxxxxxxx", user_key: "f61a83xxxxxxxxxxx")
#打包到Fir
firim(firim_api_token:"d7387f15xxxxxxxxxx")
end
end
我們通過不同的lane喘落,來執(zhí)行不同的打包操作茵宪,因此可以根據(jù)需求來添加lane。這里我們執(zhí)行打Release包操作:
fastlane Release
報(bào)錯(cuò)瘦棋,訪問報(bào)錯(cuò)信息里提供的蘋果開發(fā)者網(wǎng)址稀火,發(fā)現(xiàn)需要在項(xiàng)目中配置選項(xiàng),如下:
重新執(zhí)行打包操作赌朋,等待完成凰狞,然后就能發(fā)現(xiàn)我們的包已經(jīng)自動(dòng)上傳到蒲公英和Fir上了。
使用fastlane打包沛慢,可以解決傳統(tǒng)打包痛點(diǎn)的1-4項(xiàng)赡若,碰到第5項(xiàng),你還是要自己執(zhí)行打包腳本颠焦。這時(shí)我們引入Jenkins斩熊,讓測(cè)試人員通過訪問開發(fā)人員本地服務(wù)器地址來執(zhí)行打包腳本。
三伐庭、Jenkins
1.下載安裝JDK粉渠,配置JDK環(huán)境變量
2.下載安裝Jenkins
安裝完成后,Safari會(huì)自動(dòng)彈出圾另,
執(zhí)行命令霸株,查看其提供路徑下的密碼:
sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword
3.新建任務(wù)
General,無需配置
源碼管理:無需配置
構(gòu)建觸發(fā)器:無需配置
構(gòu)建環(huán)境:無需配置
構(gòu)建配置集乔,添加“執(zhí)行shell”:
構(gòu)建后操作:無需配置
4.開始構(gòu)建
這里看控制臺(tái)輸出
打包成功
5.至此去件,我們可以將自己的ip地址:8080,發(fā)給測(cè)試人員扰路,這樣測(cè)試人員可以自行打包尤溜,然后去蒲公英或者Fir上下載app。打包的時(shí)候汗唱,我們必須保證本地的jenkins服務(wù)是開啟的宫莱,否則其他人員是無法訪問你的鏈接的,如果沒有開啟哩罪,我們可以通過以下命令開啟服務(wù):
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
四授霸、總結(jié)
單獨(dú)使用Fastlane,或者單獨(dú)使用Jenkins际插,其實(shí)都可以完成打包操作碘耳。單獨(dú)使用Fastlane,開發(fā)人員需要自行打包框弛,測(cè)試人員無法打包辛辨;單獨(dú)使用Jenkins,打包配置過于繁瑣,證書失效等情況會(huì)導(dǎo)致配置文件失效愉阎,導(dǎo)致打包時(shí)報(bào)绞蹦。Fastlane和Jenkins相結(jié)合的打包方式力奋,通過Jenkins執(zhí)行Fastlane的打包腳本榜旦,無需復(fù)雜的配置,不同的項(xiàng)目只需要簡(jiǎn)單的修改腳本景殷,支持測(cè)試人員自行打包溅呢。