iOS自動打包指令碼+自動上傳到fir

程式鬼發表於2018-01-18

        用fir.im測試已經好長時間了,感覺每次打包上傳都很麻煩,網上看了下,確實有打包的指令碼,摸索了下,將兩者結合一起,寫了一篇文章!

前言:首先要有一個fir的賬號,沒有的童鞋自己去了解下,這裡不多講(網站:https://fir.im/),搭建好ruby環境,

安裝問題:

使用系統自帶的 Ruby 安裝, 需確保 ruby-dev 已被正確的安裝(ruby -v 檢視版本):

fir: command not found:這個是因為沒有安裝fir-cil,導致找不到相應的命令列,只需要安裝一下就行了

iOS自動打包指令碼+自動上傳到fir
檢視當前ruby版本

xcode-select--install                            # OS X系統

sudo apt-getinstall ruby-dev               # Linux 系統

出現Permission denied相關錯誤:  在命令前加上sudo

出現Gem::RemoteFetcher::FetchError相關錯誤: ruby源沒有更換,或者失效(taobao源已經不更新了)


iOS自動打包指令碼+自動上傳到fir
我現在正在使用的ruby

安裝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


iOS自動打包指令碼+自動上傳到fir
安裝Homebrew


iOS自動打包指令碼+自動上傳到fir
安裝Fir-cli

安裝成功後,登陸fir

fir login


iOS自動打包指令碼+自動上傳到fir
輸入在fir.im API的Token

fir.im API的token 位置:https://fir.im/apps

iOS自動打包指令碼+自動上傳到fir
不是app的ID

好了,目前為止,環境問題已經搞定了,看看指令碼

#注意:指令碼目錄和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 是從之前打包出來的包裡面拷貝過來的

iOS自動打包指令碼+自動上傳到fir
ExportOptions


iOS自動打包指令碼+自動上傳到fir
在專案路徑下,執行sh *sh即可執行打包操作


iOS自動打包指令碼+自動上傳到fir
打包完成


這個時候已經打包完成,檢視fir上面也上傳了最新的包,很方便!!



寫程式碼是一條漫長的路,路上因為有你,風景會變得更加精彩!!

相關文章