iOS自动打包机器人实现

目的

封装一个打包小机器人小应用,双击就能让项目自动打包上传到fir.im

自动打包机器人.jpg

思路

.sh脚本执行xcodebuild命令进行打包,后fir-cli命令上传到fir.im,测试可以正常打包后用Mac自带的自动化工具执行该脚本

过程

一 环境配置

1.确定ruby存在

ruby -v

2.安装fir-cli

sudo gem install fir-cli

3.检查xcodebuild是否安装

xcode-select --install

二 相关文件及证书配置

这里需要配置文件里需要一个.sh的脚本,以及一张对应的证书配置表.plist,这里把这些都放在scripts文件夹里
戳这下载

然后把scripts文件夹放到工程目录里

20190813155840.jpg

.plist表配置如下

1565606832277.jpg

需要填写的有 teamID ,method, provisioningProfiles
个人比较推荐从之前手动打包所产生的ExportOptions.plist文件里获取

1565607153732.jpg

debug_config.plistExportOptions.plist的对应关系,其中method内测就用development,上架用App Store

20190813154251.jpg

四 .sh说明

#!/bin/sh
# Your configuration information

target_name="xxxxxx.xcodeproj" # 有效值 ****.xcodeproj / ****.xcworkspace (cocoapods项目)
project_name="xxxxxx" # 工程名
work_type="workspace" # 有效值 project / workspace (cocoapods项目)
api_token="你fir的tonken" # fir token


sctipt_path=$(cd `dirname $0`; pwd)
echo sctipt_path=${sctipt_path}
work_path=${sctipt_path}/..
rm -rf ${work_path}/build

#cd ../
#pod install --no-repo-update
#cd ${sctipt_path}

out_sub_path=`date "+%Y-%m-%d-%H-%M-%S"`
out_base_path="../打包文件"
out_path=${work_path}/${out_base_path}/${out_sub_path}
mkdir -p ${out_path}


if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
source $HOME/.rvm/scripts/rvm
rvm use system
fi

xcodebuild -$work_type ${work_path}/$target_name -scheme $project_name -configuration Debug -sdk iphoneos clean
xcodebuild archive -$work_type ${work_path}/$target_name -scheme $project_name -configuration Debug -archivePath ${out_path}/$project_name.xcarchive
xcodebuild -exportArchive -archivePath ${out_path}/$project_name.xcarchive -exportPath ${out_path} -exportOptionsPlist ${sctipt_path}/debug_config.plist

echo ${out_path}/$project_name.ipa

if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
source ~/.rvm/scripts/rvm
rvm use default
fi

fir p ${out_path}/$project_name.ipa -T $api_token -c 发布debug版本

exit 0

这是我这边使用的脚本,虽然虽然完全没学过脚本语言,但认真看还是很容易懂得,到mkdir -p ${out_path}之前无非就是配置各种路径,重点是在下面

xcodebuild -$work_type ${work_path}/$target_name -scheme $project_name -configuration Debug -sdk iphoneos clean

xcodebuild archive -$work_type ${work_path}/$target_name -scheme $project_name -configuration Debug -archivePath ${out_path}/$project_name.xcarchive

xcodebuild -exportArchive -archivePath ${out_path}/$project_name.xcarchive -exportPath ${out_path} -exportOptionsPlist ${sctipt_path}/dev_config.plist

xcodebuild命令 clean,archive,exportArchive是不是很熟悉的感觉,就是我们常规的清除、打包、导出等操作用命令的方式执行而已

fir p ${out_path}/$project_name.ipa -T $api_token -c 

这点就是之前需要fir-cli的原因,这段就是用fir-cli命令上传已经打包好的ipa,其中对应的fir token需要登录fir.im获取

到这里基本工作都弄完了,终端cd到你工程目录下scripts文件夹,直接执行.sh文件就可以自动打包了

bash -l dev_config.sh

如果什么意外在工程目录的上一级会出现一个文件夹,里面有如下东西

20190813163135.jpg

五 包装成Mac应用

其实到上面一步基本就完成,但作为程序员应该更懒,这里我们可以利用Mac自带的自动化操作将终端命令封装保存

20190813161621.jpg
20190813162031.jpg

然后你就有属于自己的自动打包机器人啦,双击运行直接自动打包上传到fir.im

自动打包机器人.jpg

六 可能出现的问题

  • 如果执行机器人时直接报错或者打包后生产空文件夹空,则可能是环境配置问题,需要从新开始配置
  • 如果打包出来只有.xcarchive文件,则是证书配置问题,需要重新检查证书
  • 如果有生成.api但却没成功上次到fir.im则可能是输入的fir token有误,或者fil-cil没安装成功
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容