美文网首页证书、上架相关iOS Developer
iOS自动打包脚本+自动上传到fir

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

作者: 属鱼的加菲猫 | 来源:发表于2017-10-17 15:02 被阅读139次

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

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

    安装问题:

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

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

    查看当前ruby版本

    xcode-select--install                            # OS X系统

    sudo apt-getinstall ruby-dev               # Linux 系统

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

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

    我现在正在使用的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

    安装Homebrew 安装Fir-cli

    安装成功后,登陆fir

    fir login

    输入在fir.im API的Token

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

    不是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 是从之前打包出来的包里面拷贝过来的

    ExportOptions 在项目路径下,执行sh *sh即可执行打包操作 打包完成

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

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

    相关文章

      网友评论

      本文标题:iOS自动打包脚本+自动上传到fir

      本文链接:https://www.haomeiwen.com/subject/nihduxtx.html