iOS自動打包腳本會用到的相關(guān)命令

iOS自動打包腳本相關(guān)命令

xcodebuild

終端執(zhí)行man xcodebuild或xcodebuild -h查看具體使用方法态兴。

xcodebuild命令詳解

Plist 文件操作

終端執(zhí)行 /usr/libexec/PlistBuddy -h 查看使用方法凫海。

PlistBuddy簡單使用

一、批量出包所需的物料

從事游戲行業(yè)的開發(fā)者一定深知行業(yè)內(nèi)馬甲包的亂相,吃這一碗飯侧戴,在此不做評判。下面簡單整理一下整個出包過程。

1.一個完整xcode工程

2.相關(guān)參數(shù)霸饲,存在在info.plist中的系統(tǒng)參數(shù)或自定義參數(shù)

3.p12證書與distribution描述文件

4.需要替換的資源文件,icon等

二臂拓、獲取信息

用一個xcode工程出包厚脉,圖形化界面的Xcode只需要點一下archive,選擇導(dǎo)出類型胶惰,證書傻工,然后export即可。同理孵滞,命令行出包的步驟也是如此中捆。相關(guān)命令如下:

a.導(dǎo)入p12證書到keychain

security import p12證書路徑 -k ~/Library/Keychains/login.keychain-db -P p12證書密碼 -T /usr/bin/codesign

//1 identity imported.

b.獲取friendlyName eg:iPhone Distribution:Zeng Yang (49P4585YSG)

openssl pkcs12 -nodes -in p12證書路徑 -info -nokeys -passin 'pass:bingniao' 2>/dev/null | grep 'friendlyName'

//friendlyName: iPhone Distribution: Zeng Yang (49P4585YSG)

c.輸出mobileprovision相關(guān)信息

openssl smime -in .mobileprovision的描述文件 -inform der -verify

寫入信息到臨時plist文件,方便后續(xù)讀取
openssl smime -in .mobileprovision的描述文件 -inform der -verify >~/tmp_provisionProfile.plist

d.讀取相關(guān)信息 UUID坊饶、mobileProvision泄伪、team id等

//獲取UUID  eg:acc104c7-ccf6-402e-92cd-4db3eb7c5c78
/usr/libexec/PlistBuddy -c 'print UUID' ~/tmp_provisionProfile.plist

//獲取mobileProvision文件名 eg:Distribution_dblfk
/usr/libexec/PlistBuddy -c 'print Name' ~/tmp_provisionProfile.plist

//獲取team id  eg:49P4585YSG
/usr/libexec/PlistBuddy -c 'print TeamIdentifier:0' ~/tmp_provisionProfile.plist

e.獲取xcode版本

獲取xcode 版本

xcodebuild -version | head -n 1 | awk '{print $2}'
三、開始出包

a.修改info.plist文件

通過PlistBuddy進(jìn)行操作info.plist文件

b.替換icon等資源文件

使用相關(guān)shell腳本命令進(jìn)行強制替換即可幼东。

c.出包

相關(guān)參數(shù)與資源處理完成之后即可進(jìn)行出包操作臂容。

出包流程:

1.clean操作科雳,清理工程;
2.archive操作脓杉,導(dǎo)出 .xcarchive 文件糟秘;
3.export操作,導(dǎo)出IPA包球散;

執(zhí)行命令前尿赚,請先cd到工程根目錄。

clean

xcodebuild clean -configuration Release -alltargets

archive

xcodebuild archive -scheme <scheme名> -configuration Release -archivePath <~/tmp_app.xcarchive> PROVISIONING_PROFILE="<mobileProvision文件名>" CODE_SIGN_IDENTITY="<friendlyName>" PROVISIONING_PROFILE_SPECIFIER="<UUID>" PRODUCT_BUNDLE_IDENTIFIER="<bundle id>" DEVELOPMENT_TEAM="<team id>"

export
exportOptionsPlist.plist可采用模板寫文件

因為 Xcode 9 默認(rèn)不允許訪問鑰匙串的內(nèi)容蕉堰,必須要設(shè)置 allowProvisioningUpdates 才會允許凌净。所有在這里導(dǎo)出做一下版本判斷

version < 9.0
xcodebuild -exportArchive -archivePath <導(dǎo)出的.xcarchive文件路徑> -exportPath <~/exportPath> -exportOptionsPlist <~/tmp_exportOptions.plist路徑> -configuration Release


version >= 9.0
xcodebuild -exportArchive -archivePath <導(dǎo)出的.xcarchive文件路徑> -exportPath <~/exportPath> -exportOptionsPlist <~/tmp_exportOptions.plist路徑> -allowProvisioningUpdates

exportOptionsPlist.plist

$method 選擇: app-store、development屋讶、ad-hoc

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>teamID</key>
    <string>{teamId}</string>
    <key>method</key>
    <string>{$method}</string>
    <key>provisioningProfiles</key>
    <dict>
      <key>{bundleId}</key>
      <string>{uuid}</string>
    </dict>
    <key>compileBitcode</key>
    <false/>
    <key>uploadBitcode</key>
    <false/>
    <key>uploadSymbols</key>
    <false/>
  </dict>
</plist>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冰寻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子皿渗,更是在濱河造成了極大的恐慌斩芭,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乐疆,死亡現(xiàn)場離奇詭異划乖,居然都是意外死亡,警方通過查閱死者的電腦和手機挤土,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門琴庵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仰美,你說我怎么就攤上這事迷殿。” “怎么了筒占?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵贪庙,是天一觀的道長。 經(jīng)常有香客問我翰苫,道長,這世上最難降的妖魔是什么这橙? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任奏窑,我火速辦了婚禮,結(jié)果婚禮上屈扎,老公的妹妹穿的比我還像新娘埃唯。我一直安慰自己,他們只是感情好鹰晨,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布墨叛。 她就那樣靜靜地躺著止毕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漠趁。 梳的紋絲不亂的頭發(fā)上扁凛,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音闯传,去河邊找鬼谨朝。 笑死,一個胖子當(dāng)著我的面吹牛甥绿,可吹牛的內(nèi)容都是我干的字币。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼共缕,長吁一口氣:“原來是場噩夢啊……” “哼洗出!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起图谷,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤翩活,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蜓萄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隅茎,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年嫉沽,在試婚紗的時候發(fā)現(xiàn)自己被綠了辟犀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绸硕,死狀恐怖堂竟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情玻佩,我是刑警寧澤出嘹,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站咬崔,受9級特大地震影響税稼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜垮斯,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一郎仆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兜蠕,春花似錦扰肌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盗舰。三九已至,卻和暖如春桂躏,著一層夾襖步出監(jiān)牢的瞬間钻趋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工沼头, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爷绘,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓进倍,卻偏偏與公主長得像土至,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猾昆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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