xcodebuild 自動(dòng)化構(gòu)建

摘要

在開發(fā)過程中,打包是一個(gè)相當(dāng)繁瑣、耗時(shí)且重復(fù)的一塊工作,所以每個(gè)有志成為優(yōu)秀的攻城獅人都在自動(dòng)化解決打包的問題,今天我就說說自動(dòng)化打包的第一步。

簡(jiǎn)介

xcodebuild是蘋果發(fā)布自動(dòng)構(gòu)建的工具。它在一個(gè)xcode項(xiàng)目下能構(gòu)建一個(gè)或者多個(gè)targets也能在workspace或者xcode項(xiàng)目上構(gòu)建scheme.

用法說明

在終端輸入man xcodebuild,查看文檔,也可以查看官方文檔

當(dāng)你想構(gòu)建一個(gè)xcode項(xiàng)目,在項(xiàng)目目錄下運(yùn)行xcodebuild就可以了(目錄下面包含projectname.xcodeproj文件就行),如果目錄下面有多個(gè)項(xiàng)目你需要用參數(shù)-project指定一個(gè)項(xiàng)目。默認(rèn)xcodebuild命令會(huì)構(gòu)建你第一個(gè)target的。當(dāng)然,你也可以用targetname指定。

要構(gòu)建workspace,你必須指定-workspace-scheme參數(shù)。

當(dāng)然你可以以用就比如-version、-showsdks、-list等一些命令來獲取一些項(xiàng)目相關(guān)的參數(shù)

Archive包

命令:

xcodebuild archive  -workspace 項(xiàng)目名稱.xcworkspace  -scheme 項(xiàng)目名稱  -configuration 構(gòu)建配置  -archivePath archive包存儲(chǔ)路徑 CODE_SIGN_IDENTITY=證書  PROVISIONING_PROFILE=描述文件UUID
  • -workspace 項(xiàng)目名稱
  • scheme 可以通過xcodebuild -list獲取
  • configration 一些參數(shù),也可以通過xcodebuild -list獲取,一般使用Debug、Release
  • archivePath archive后的路徑
  • CODE_SIGN_IDENTITY 證書的Inentity
  • PROVISIONING_PROFILE 描述文件UUID


    C34F6B07-F71A-419D-B815-4B8D4D645BA3.png

證書Identity獲?。?/h1>

鑰匙串訪問->選中證書->上方的標(biāo)題就是我們需要的Identity

77C51801-49F2-4F01-8449-5636C7C4705C.png

獲取Provisioning文件UUID

在xcode8.0以上,Provisioning文件的位置是:

/Users/用戶名/Library/MobileDevice/Provisioning Profiles

使用security cms -D -i XXX.mobilprovision查看描述文件的信息

生成ipa文件

xcodebuild -exportArchive -archivePath archive文件的地址.xcarchive  -exportPath 導(dǎo)出的文件夾地址 -exportOptionsPlist "${EXPORT_PLIST}" CODE_SIGN_IDENTITY=證書  PROVISIONING_PROFILE=描述文件UUID

如果你不需要的指定證書和Provisioning文件,可以把上面的兩個(gè)參數(shù)去掉,它會(huì)根據(jù)你的Xcode配置去匹配

  • exportOptionsPlist 自己創(chuàng)建的plist文件,內(nèi)容如下:
<?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>99WG99HF75</string> 
        <key>method</key>
        <string>ad-hoc</string> 
        <key> compileBitcode</key> 
        <false/>
    </dict>
</plist>

這里有三個(gè)參數(shù):
teamID: 團(tuán)隊(duì)ID
method: ad-hoc或者app-store 如果找不到該參數(shù),就會(huì)使用dev證書簽名。。。
compileBitcode: 是否需要bitcode

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容