前言
以往都是用繁瑣的打包方式灰伟,雖然已經(jīng)習(xí)慣的,但浪費(fèi)時(shí)間這點(diǎn)是必然有的儒旬,索性今天就研究了下自動(dòng)化打包栏账,其實(shí)比我想象中的簡(jiǎn)單帖族,之后簡(jiǎn)單,是因?yàn)橛星罢咭呀?jīng)鋪好了路挡爵。
常用的自動(dòng)化打包有兩種:Jenkins竖般;或腳本shell,原理都差不多了讨,但Jenkins必然是經(jīng)過第三方的,配置相當(dāng)麻煩制轰,但可以支持直接Git打包前计。這邊我推薦的是腳本shell打包方式。
關(guān)于自動(dòng)化打包的垃杖,這篇已經(jīng)寫得非常清楚了男杈,我就不竊取了。參考:http://www.reibang.com/p/05dc9f925467
這邊主要說下執(zhí)行過程中錯(cuò)誤和修改:
1调俘、安裝fir-cli時(shí)錯(cuò)誤
ERROR: While executing gem ... (Gem::FilePermissionError)
? ? You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory
原因:對(duì)于Mac OS X 10.11 El Capitan以上用戶伶棒,由于系統(tǒng)啟用了SIP(System Integrity Protection), 導(dǎo)致root用戶也沒有權(quán)限修改/usr/bin目錄。
解決方案有兩種:
1)更換目錄(推薦):
sudo gem install -n /usr/local/bin fir-cli
2)屏蔽方法:
重啟Mac彩库,按住command+R,進(jìn)入recovery模式肤无。選擇打開Utilities下的終端,輸入:csrutil disable并回車骇钦,然后正常重啟Mac即可宛渐。
2、配置證書錯(cuò)誤
error: exportArchive: "***.app" requires a provisioning profile.
Error Domain=IDEProvisioningErrorDomain Code=9 ""WaynetCloud.app" requires a provisioning profile." UserInfo={NSLocalizedDescription="WaynetCloud.app" requires a provisioning profile., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
** EXPORT FAILED **
原因:因?yàn)?Xcode 9 默認(rèn)不允許訪問鑰匙串的內(nèi)容眯搭,所以我們需要在plist里配置相關(guān)證書窥翩。
解決方案:在plist (exportAppstore /?exportTest)添加配置證書
<key>provisioningProfiles</key>
??? ??? <dict>
??? ??? ??? <key>%app_bundle_id%</key>
??? ??? ??? <string>%provisioning profiles name or uuid%</string>
??? ??? </dict>
?<key>signingCertificate</key>
?<string>%codesign_identity%</string>
?<key>signingStyle</key>
?<string>manual</string>
?<key>teamID</key>
?<string>%teamid%</string>
?<key>method</key>
?<string>development</string>
上面代碼中的%***%需要替換為自己項(xiàng)目的實(shí)際內(nèi)容,不要%%
%app_bundle_id% 是app的bundleid 一般是com.abc.abc 之類的
%provisioning profiles name or uuid% 這個(gè)是provisioning profiles 的名稱或uuid
%codesign_identity% 這個(gè)是簽名 可以是名稱或uuid? 如:"iPhone Developer:zhang san(FFFFFFFF)"
%teamid%? 這個(gè)是10位的teamid
其中key:method 對(duì)應(yīng)了導(dǎo)出ipa的方式:app-store,ad-hoc,package,enterprise,development,developer-id,and mac-application. 默認(rèn)是development