IOS打包测试发布环境配置-附加篇

注:本附加篇紧接上一篇IOS打包测试发布环境配置-下篇,是对上一篇脚本文件的改进并添加了新的功能,主要是iOS自动定时打包功能的实现。
对于原有脚本的改进:在任意目录均可执行打包脚本。
Paste_Image.png

关于crontab

crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

  • /sbin/service crond start //启动服务
  • /sbin/service crond stop //关闭服务
  • /sbin/service crond restart //重启服务
  • service crond status //查看crontab服务状态:
  • service crond start //启动crontab服务:
crontab服务是否已设置为开机启动

# ntsysv
设置crond开机自动启动:
# chkconfig --level 35 crond on
MAC 下默认开启,不用配置。

管理cron计划任务

(a) 编辑计划任务:crontab -e [-u 用户名]
(b) 查看计划任务:crontab -l [-u 用户名]
(c) 删除计划任务:crontab -r [-u 用户名]

编辑添加定时任务

1 打开终端 输入 crontab -e 进入vim编辑器
2 输入i 进入编辑模式,复制粘贴如下命令,(你的脚本路径)
3 esc 退出编辑模式 输入:wq 保存退出
4 crontab -l 查看定时任务
5 crontab -r 删除定时任务


12 15 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Debug.sh
17 15 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Enterprise.sh  
18 15 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Release.sh
上面三行命令分别表示
  • 每天的 15:12分执行 fir_abs_Debug.sh 脚本
  • 每天的 15:17分执行 fir_abs_Enterprise.sh 脚本
  • 每天的 15:18分执行 fir_abs_Release.sh 脚本

编辑完成后就等待脚本的执行。


一般执行crontab -r 删除自动任务时你会收到一个邮件,这里面是具体执行脚本的编译提示

查看定时编译报错日志位置.png

具体要根据每个用户的用户名,确定位置;

Zhifei-de-MacBook-Pro:mail marvis$ crontab -r
You have mail in /var/mail/marvis

可能出现的问题如下截图

自动编译编译失败了.png

查阅了各种资料来回折腾,最后在这篇帖子找到了解决方案,原来是默认情况下钥匙串放在登录用户账户中的root账户下,普通的登录用户在终端环境下没有运行没有问题,但是在cron命令执行环境与终端不一致所以需要修改证书的位置。由登录用户改成系统用户即可。
还用一种方案是创建系统的cron任务 不过该方案我试验没有成功,具体原因没有找到。也可以启动root账户

移动证书位置.png
无法编辑crontab.png

此时需要在进入vim编辑器后首先输入shift+,保存退出后即可创建任务


如下几种错误


fir commond命令找不到.png
ruby 环境确实报错.png
gem 环境找不到.png

以上几种错误都是由于cron命令环境与终端环境不一致造成的
可以再脚本中添加PATH解决,
或者是使用ruby version manage 即rvm cron setup 终端命令在创建任务上面添加PATH路径解决
可以先查看一下ruby的位置

查看ruby bin 位置.png
编辑crontab.png
crontab 命令.png

缺少readme报错.png

README: No such file or directory

那是因为你的脚本目录下没有README的文件,只需要建一个README的文件就行了,打开终端,cd到当前位置,然后执行下面的命令:

touch README

编译打包文件成功后,可以看到时间与我们任务定义的打包时间一致

系统自动定时打包的文件.png

未解决的问题

上传fir时一直报错,找不到bundle ,升级了ruby还是没有解决,看来cron还是有许多坑。如果哪位大神解决了,烦请贴出来,大家相互学习!


gem bundle 缺失报错.png

如果添加 &> /dev/null 到xcodebuild 命令后面,则xcodebuild 编译产生的信息豆浆杯扔进无底洞,不会输出到 /var/mail/marvis 文件中

清空编译垃圾输出信息.png
没有删除xcodebuild 编译信息的显示.png
删除xcodebuild编译过程中的垃圾文件.png
参考链接

Shell中获取脚本所在目录绝对路径的方法
关于RVM
Gem bundler is not installed, run gem install bundler first.
Where is ruby stored on mac?
Fix Rubygems binary error: undefined method `activate_bin_path' for Gem:Module (NoMethodError)
Getting Ruby scripts working with bundler, rvm and cron


我是一道华丽的分割线- 4.22更新


更新内容

  • 解决上传fir-im报错问题
  • 优化脚本添加配置参数,可在脚本后面添加执行参数
    参数:0 、1、2 分别代表编译Debug 、Enterprise、Release版本;
    也可直接使用参数:Debug 、Enterprise、Release

上传fir-im报错问题
报错内容
/Users/marvis/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems.rb:270:in `find_spec_for_exe': can't find gem fir-cli (>= 0.a) (Gem::GemNotFoundException)
    from /Users/marvis/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/rubygems.rb:298:in `activate_bin_path'
    from /usr/local/bin/fir:22:in `<main>'
    from /Users/marvis/.rvm/gems/ruby-2.4.1@global/bin/ruby_executable_hooks:15:in `eval'
    from /Users/marvis/.rvm/gems/ruby-2.4.1@global/bin/ruby_executable_hooks:15:in `<main>'

解决方案

1 将.gemrc重命名为.gemrc_backup(我也不知道为什么!)

2 将gem镜像换成ruby-china 确保只有 gems.ruby-china.org
之前来回折腾,换了淘宝源,还是不行

3 重新安装fri-cli。 后面发现pod命令也出错了,然后cocoapod也重新安装了

具体操作命令顺序如下
$ mv ~/.gemrc ~/.gemrc_backup

$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem sources -l https://gems.ruby-china.org

$sudo gem install fir-cli
$sudo gem install cocoapods


优化脚本添加配置参数
修改脚本内容
然后重新设计打包的脚本

source ~/.profile

###############设置需编译的项目配置名称
buildConfig=$1

case $buildConfig in

0)
    echo "当前编译模式为 Debug"
    buildConfig=Debug;;
Debug)
    echo "当前编译模式为 Debug";;

1)
    echo "当前编译模式为 Enterprise"
    buildConfig=Enterprise;;
Enterprise)
    echo "当前编译模式为 Enterprise";;

2)
    echo "当前编译模式为 Release"
    buildConfig=Release;;
Release)
    echo "当前编译模式为 Release";;

*)
    echo "编译模式报错"
    echo "编译模式必须为Debug 0,Enterprise 1,Release 2中的一种"
    exit
    ;;
esac
#编译的方式有,Debug,Release,自定义的 DebugOn,DebugOnlineArch,Enterprise等
重新编译配置crontab任务
#sm start rvm
PATH="/Users/marvis/.rvm/gems/ruby-2.4.1/bin:/Users/marvis/.rvm/gems/ruby-2.4.1@global/bin:/Users/marvis/.rvm/rubies/ruby-2.4.1/bin:/Users/marvis/.rvm/gems/ruby-2.4.1/bin:/Users/marvis/.rvm/gems/ruby-2.4.1@global/bin:/Users/marvis/.rvm/rubies/ruby-2.4.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/marvis/oracleclient_12_1:/usr/local/mysql/bin:/Users/marvis/Library/Android/sdk/platform-tools:/Users/marvis/.rvm/bin"
GEM_HOME='/Users/marvis/.rvm/gems/ruby-2.4.1'
GEM_PATH='/Users/marvis/.rvm/gems/ruby-2.4.1:/Users/marvis/.rvm/gems/ruby-2.4.1@global'
MY_RUBY_HOME='/Users/marvis/.rvm/rubies/ruby-2.4.1'
IRBRC='/Users/marvis/.rvm/rubies/ruby-2.4.1/.irbrc'
RUBY_VERSION='ruby-2.4.1'
#sm end rvm

23 9 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Debug.sh 0 

24 9 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Debug.sh 1 

25 9 * * * sh /Users/marvis/Desktop/GitWorkSpace/AutoBuildConfigSet-Demo/AutoBuildConfigSet-Demo/fir_abs_Debug.sh 2 

执行情况截图
自动打包的本地文件.png
自动打包Debug上传成功.png
自动打包Enterprise版本上传成功.png
自动打包Release版本上传成功.png
注意事项.png
相关链接

fir-cli 安装
ruby-china

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

推荐阅读更多精彩内容

  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,815评论 0 4
  • Linux定时任务Crontab命令详解linux 系统则是由 cron (crond) 这个系统服务来控制的。L...
    时待吾阅读 387评论 0 0
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linu...
    happeace阅读 1,767评论 0 53
  • linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性...
    苏大发阅读 659评论 0 0
  • 国王特权(就是VIP) 建议购买12个大洋的VIP,非常实用,可增加深渊次数、Bossrush刷新次数、副本复活次...
    安静的沸腾阅读 338评论 0 0