1、文件準備api
一、建立打包腳本(具體如何製做腳本,百度一下😄,具體源碼和如何修改腳本參數,後面貼有)xcode
二、建立打包時所用.plist文件 (能夠在Xcode中將info.plist拷貝出來修改,具體源碼後面貼有)bash
三、須要安裝fir-cli, 主要是要經過fir命令將應用上傳到fir.im網站app
四、將打包腳本和打包用到的.plist文件 放在和項目的運行文件在同一個目錄下網站
以下圖:ui
2、使用終端進入項目目錄下,也就是上圖目錄,將打包腳本文件拖到終端,並按回車鍵,這是就開始打包了😄,打包成功後,會生產一個XcodeBuild文件夾,這個文件夾是在打包腳本中定義的,XcodeBuild文件夾內容以下:spa
注意⚠️:修改如下幾個參數就能夠就可使用.net
一、工程名字:XcodeBuildFile_Namecode
二、選擇scheme: Scheme_Nameorm
三、修改證書和配置文件(若是使用指定證書打包,須要取消Xcode中自動管理簽名(Automatically manage signing)若是使用不指定證書和配置文件打包,將證書和配置文件的相關腳本去掉,同時要勾選在Xcode中自動管理簽名選項 )
四、修改fir.im網站APIToken: Fir_Api_Token
五、創建一個ADHOCExportOptionsPlist.plist文件,源碼貼在最下面,能夠直接複製粘貼使用
#---------------------------自動打包腳本------Start--------------
#! /bin/bash
#注意⚠️:腳本目錄,ADHOCExportOptionsPlist 和xxxx.xcodeproj或.xcworkspace要在同一個目錄,若是放到其餘目錄,請自行修改腳本。
#存放打包後的文件的文件夾的名字
XcodeBuildFile_Name="XcodeBuild"
#工程名字
Project_Name="XXXX"
#這裏選擇打包的scheme,若是你不知道你項目有多少個scheme 能夠用終端進入項目中有包含運行項目的文件目錄下輸入:xcodebuild -list 查看
Scheme_Name="XXXXX";
#配置環境,Release或者Debug
Configuration="Release"
#打包成.xcarchive文件的存放路徑
AdHocArchivePath=./$XcodeBuildFile_Name/$Project_Name-adhoc.xcarchive
#打包成.ipa文件後的路徑 打包好xxx.ipa文件名默認是$Scheme_Name.ipa
AdHocExportPath=./$XcodeBuildFile_Name/
# ADHOC
#證書名
ADHOCCODE_SIGN_IDENTITY="iPhone Distribution: XXXXXX"
#配置文件的UUID描述文件(如何獲取配置文件的UUID)
ADHOCPROVISIONING_PROFILE_NAME="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"
#加載plist文件,該文件會須要指明打包發佈的類型:蘋果商店:app-store, 內測:ad-hoc, 企業帳號:enterprise,
ADHOCExportOptionsPlist=./ADHOCExportOptionsPlist.plist
#clean下
xcodebuild clean
#若是文件夾不存在,建立文件夾
if [ ! -d ./$XcodeBuildFile_Name ]; then
mkdir $XcodeBuildFile_Name
fi
#打包成xcarchive文件命令
#workspace:表示運行工程,由於項目採用了cocoapod,運行文件爲.xcworkspace,因此要使用workspace
#若是項目的運行文件是.xcodeproj,那麼須要將下面的workspace替換成project,而且須要將.xcworkspace替換成.xcodeproj
#scheme 選擇要打包的Target
#注意⚠️:若是你採用指定開發證書和配置文件來打包,須要在Xcode中將對應的scheme的自動管理簽名(Automatically manage signing)這個選項取消掉就能夠,取消後能夠不用在Xcode指定打包證書
xcodebuild archive -workspace $Project_Name.xcworkspace -scheme $Scheme_Name -configuration $Configuration -archivePath $AdHocArchivePath CODE_SIGN_IDENTITY="${ADHOCCODE_SIGN_IDENTITY}" PROVISIONING_PROFILE="${ADHOCPROVISIONING_PROFILE_NAME}"
#打包成.ipa文件命令
xcodebuild -exportArchive -archivePath $AdHocArchivePath -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath $AdHocExportPath
#--------------------將打包好的.ipa上傳到fir.im網站上------
#注意⚠️:使用終端上傳應用到fir.im網站上,須要安裝fir-cli
#存儲終端上傳應用到fir.im網站上打印的信息文本
FirUploadInformationTxt="FirUploadInformation.txt"
#信息文本
FirUploadInformationPat=./$XcodeBuildFile_Name/$FirUploadInformationTxt
#刪除舊信息文本
rm $FirUploadInformationPat
#建立信息文本
touch $FirUploadInformationPat
#api token 須要用戶登陸fir.im網站獲取
Fir_Api_Token="XXXXXXXXXXXXXXXXXXX"
#打包好的./ipa文件存放路徑
IPA_Path=./$XcodeBuildFile_Name/$Scheme_Name.ipa
#上傳到應用到fir.im網站 "ls>$FirUploadInformationPat" 這個命令,是將終端上傳應用到fir.im網站上打印的信息輸出到FirUploadInformationTxt文件上
fir p $IPA_Path -T $Fir_Api_Token ls>$FirUploadInformationPat
#---------------------------自動打包腳本------End--------------
#----------------ADHOCExportOptionsPlist.plist文件內容-----Start----------
<?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>uploadSymbols</key>
<false/>
<key>uploadBitcode</key>
<false/>
<key>method</key>
<string>ad-hoc</string>
<key>compileBitcode</key>
<false/>
</dict>
</plist>
#----------------ADHOCExportOptionsPlist.plist文件內容-----End-------------