用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 安装Fir-cli#安装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.im API的Tokenfir login
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上面也上传了最新的包,很方便!!
写代码是一条漫长的路,路上因为有你,风景会变得更加精彩!!
网友评论