一、目的和說明
為了給我自己的項目,能夠快速生成ipa包,研究了命令行給項目打包。
這里包含了兩個shell的腳本,都是用來給xcode項目打包成ipa文件。用于測試,上傳到到蒲公英或者飛機等平臺。這里的shell腳本只包含了打包生成ipa,并沒有包含分發上傳的過程。shell腳本內部是一個函數,使用起來也比較方便,你只需要在文件的最后,函數調用的后面,寫上自己的參數就可以。shell語言的函數不像oc,函數名后面不跟參數,直接在函數體里面用2...${10}代表各個參數的值。
由于更新了xcode8.3,xcrun命令已經不存在了,必須要配置plist的文件。
二、不需要配置證書信息
我用的xcode8,可以不用在腳本里面配置證書信息,只要你xcode項目中不是自動選擇證書,并且正確配置你的證書就可以了。相反,我測試了,無法打包成功。也就是說,你在腳本里面配置好你的證書信息,在xcode中不配置,這樣無法打包成功。xcodebuild archive打包的腳本中,沒有配置證書信息。
三、完整的shell腳本
1. xcodebuild archive打包腳本代碼
#!/bin/bash
#只需要在終端中輸入 $ sh archive.sh 即可打包成ipa
packaging(){
#***********配置項目
#工程名稱(Project的名字)
MWProjectName=$1
#scheme名字 -可以點擊Product->Scheme->Manager Schemes...查看
MWScheme=$2
#Release還是Debug
MWConfiguration=$3
#日期
MWDate=`date +%Y%m%d_%H%M`
#工程路徑
MWWorkspace=$4
#build路徑
MWBuildDir=$5
#plist文件名,默認放在工程文件路徑的位置
MBPlistName=$6
#創建構建和輸出的路徑
mkdir -p $MWBuildDir
#pod 相關配置
#更新pod配置
pod install
#構建
xcodebuild archive \
-workspace "$MWProjectName.xcworkspace" \
-scheme "$MWScheme" \
-configuration "$MWConfiguration" \
-archivePath "$MWBuildDir/$MWProjectName" \
clean \
build \
-derivedDataPath "$MWBuildTempDir"
#生成ipa
xcodebuild -exportArchive \
-archivePath "$MWBuildDir/$MWProjectName.xcarchive" \
-exportPath "$MWBuildDir/$MWProjectName$MWDate" \
-exportOptionsPlist "$MWWorkspace/$MBPlistName"
open $MWBuildDir
}
#函數調用
# $1 工程名 $2 scheme名字 $3 Release還是Debug $4 工程路徑 $5 ipa文件輸出路徑 $6 plist文件名字
packaging "XXX" "XXX" "Release" "/Users/maowo-001/Desktop/XXX" "/Users/maowo-001/Desktop/XXX/build" "adhocExportOptions.plist"
這個腳本,小伙伴還可以加上自己pod相關的命令,還有git相關的命令。比如:更新pods,如果你是組建的形式,可以讀取你所要的配置,然后在去pod install.
如果你是git做的代碼的管理,你還可以加入更新代碼的git命令,去更新你本地的代碼,保證你打包的時候代碼是更master上的代碼保持一致的。
2. plist文件相關內容
method這個字段對應的值:app-store, ad-hoc, enterprise, development
下面是我配置的plist文件的截圖
注意,plist文件也可以手動先打包一個ipa包,會自動生成一個plist文件,然后可以手動去修改plist內部的值。
四、使用
打開終端,cd到包含.xcworkspace或者.xcodeprojde工程文件的文件夾下,如果你是用的xcodebuild的shell腳本,請把你的plist文件也放在改路徑下。然后sh 腳本名字.sh 運行完成之后,會自動打開生成ipa的文件夾。
五、期待
這里分享的是自己學習中覺得應該記錄下來的東西,希望各位小伙伴也可以用得到。如果有什么問題或者疑問歡迎一起討論,共同進步。