iOS自动打包脚本+自动上传到fir

        用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,网上看了下,确实有打包的脚本,摸索了下,将两者结合一起,写了一篇文章!

前言:首先要有一个fir的账号,没有的童鞋自己去了解下,这里不多讲(网站:https://fir.im/),搭建好ruby环境,

安装问题:

使用系统自带的 Ruby 安装, 需确保 ruby-dev 已被正确的安装(ruby -v 查看版本):

fir: command not found:这个是因为没有安装fir-cil,导致找不到相应的命令行,只需要安装一下就行了

iOS自动打包脚本+自动上传到fir_第1张图片
查看当前ruby版本

xcode-select--install                            # OS X系统

sudo apt-getinstall ruby-dev               # Linux 系统

出现Permission denied相关错误:  在命令前加上sudo

出现Gem::RemoteFetcher::FetchError相关错误: ruby源没有更换,或者失效(taobao源已经不更新了)


iOS自动打包脚本+自动上传到fir_第2张图片
我现在正在使用的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_第3张图片
安装Homebrew


iOS自动打包脚本+自动上传到fir_第4张图片
安装Fir-cli

安装成功后,登陆fir

fir login


iOS自动打包脚本+自动上传到fir_第5张图片
输入在fir.im API的Token

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

iOS自动打包脚本+自动上传到fir_第6张图片
不是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_第7张图片
ExportOptions


iOS自动打包脚本+自动上传到fir_第8张图片
在项目路径下,执行sh *sh即可执行打包操作


iOS自动打包脚本+自动上传到fir_第9张图片
打包完成


这个时候已经打包完成,查看fir上面也上传了最新的包,很方便!!



写代码是一条漫长的路,路上因为有你,风景会变得更加精彩!!

你可能感兴趣的:(iOS自动打包脚本+自动上传到fir)