用fir.im測試已經好長時間了,感覺每次打包上傳都很麻煩,網上看了下,確實有打包的指令碼,摸索了下,將兩者結合一起,寫了一篇文章!
前言:首先要有一個fir的賬號,沒有的童鞋自己去了解下,這裡不多講(網站:https://fir.im/),搭建好ruby環境,
安裝問題:
使用系統自帶的 Ruby 安裝, 需確保 ruby-dev 已被正確的安裝(ruby -v 檢視版本):
fir: command not found:這個是因為沒有安裝fir-cil,導致找不到相應的命令列,只需要安裝一下就行了
xcode-select--install # OS X系統
sudo apt-getinstall ruby-dev # Linux 系統
出現Permission denied相關錯誤: 在命令前加上sudo
出現Gem::RemoteFetcher::FetchError相關錯誤: ruby源沒有更換,或者失效(taobao源已經不更新了)
安裝Fir-cil
#安裝Homebrew
ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#安裝RVM
\curl-sSL https://get.rvm.io | bash-sstable --ruby
#安裝FIr-Cil
gem install fir-cli
安裝成功後,登陸fir
fir login
fir.im API的token 位置:https://fir.im/apps
好了,目前為止,環境問題已經搞定了,看看指令碼
#注意:指令碼目錄和xxxx.xcodeproj要在同一個目錄,如果放到其他目錄,請自行修改指令碼。
#/bin/sh
#coding utf-8
#上傳模組需要FIR.im CLI
#安裝gem install fir-cli
#token 獲取 http://fir.im/user/info
#安靜模式,不輸出多餘log
while getopts "huv" arg #選項後面的冒號表示該選項需要引數
do
case $arg in
t)
echo "t's arg:$OPTARG" #引數存在$OPTARG中
;;
u)
upload=1
;;
v)
quiet=0
;;
h)
echo Commands:
echo " make -u #build ipa and upload fir.im"
;;
?) #當有不認識的選項的時候arg為?
echo "unkonw argument"
;;
esac
done
token="需要替換" #token 獲取 http://fir.im/user/info
echo '--------------start----------------'
echo '>> clean...'
proj=$(cd $(dirname ${0}) ; pwd -P)
xcodebuild clean 1>/dev/null
project=需要替換 #(專案名稱)
product="$proj/build/$project.ipa" #路徑
rm $product
echo '>> build...'
if [[ $quiet == 1 ]]
then
xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Ad-hoc -sdk iphoneos >/dev/null
else
xcodebuild -workspace "$project.xcworkspace" -scheme "$project" archive -archivePath $proj/build/$project.xcarchive -configuration Ad-hoc -sdk iphoneos
fi
echo '>> create ipa...'
xcodebuild -exportArchive -archivePath $proj/build/$project.xcarchive -exportOptionsPlist exportOptions.plist -exportPath "$proj/build"
#copy dsym to xcarchives
echo '>> archive dsym...'
if [[ -d $proj/build/$project.xcarchive ]]
then
filename=$(date "+%Y%m%d%H%M.%S")
mkdir -p "$proj/build/archives"
cp -r $proj/build/$project.xcarchive/ "$proj/build/archives/$filename.xcarchive"
cp "$product" "$proj/build/archives/$filename.xcarchive"
fi
if [[ $upload == 1 ]] && [[ -f "$product" ]]
then
fir l $token
fir p "$product"
clear
fir i "$product"
else
open "$proj/build"
fi
在專案路徑下執行sh *sh命令開始打包
首先是打包指令碼的下載地址,這個是我找到的比較全的一個,裡面有很多不同功能的shell指令碼,親測好用,傳送門
還有關於fir指令的一些介紹可以去這裡檢視,傳送門
官方API文件說明,傳送門
ExportOptions.plist 是從之前打包出來的包裡面拷貝過來的
這個時候已經打包完成,檢視fir上面也上傳了最新的包,很方便!!
寫程式碼是一條漫長的路,路上因為有你,風景會變得更加精彩!!