美文网首页证书、上架相关
使用 Fir.cli 工具实现快速打包 一 (iOS版本)

使用 Fir.cli 工具实现快速打包 一 (iOS版本)

作者: 环宇飞杨 | 来源:发表于2017-04-28 17:49 被阅读711次

           最近一直在做远程开发,需求也比较频繁,所以动不动就编译打包提测上传做了很多重复工作,基本每次都得花十分钟左右时间,而且其中每个过程都必须仔细关注,以免出现差错,很是费事.

           在极其注重效率的今天,且所有编译器或IDE都希望程序员把注意力集中到业务需求上的大环境下,传统打包方式显然已经跟不上节奏.  所以持续集成和快速打包等方式已然成为主流,今天就详细介绍下长期专注于应用内测服务的 fir - (官网链接 https://fir.im/) 提供的快速打包上传一条龙工具 fir.cli .

           先说说使用快速打包之前我们的日常提测步骤是什么

    1. Xcode ->Product-Scheme->Edit Scheme 下选取Debug打包方式

    日常提测选debug模式

    2.选择Archive 将源码转换为 .xcarchive 包

    点击之前要注意选择的Archive模式

    3.配置好证书,及描述文件后,选择打包ipa方式

    提测选择DevelopMent

    4.将桌面生成的包传到fir,并生成短链,填写changeLog

    上传ipa至fir服务器

    5.上传完成后将短链地址告知测试人员

    打开QQ/讨论组/微信 等,打开相关人员对话框 编辑更新内容 粘贴下载URL,发送.....

    当然以上部分步骤也可用Xcode自带的打包命令执行,但上传下载的步骤总是省不了,实际上fir.cli也是使用Xcode命令来实现打包的

    使用fir.cli之后

    以上所有繁琐的过程在使用fir.cli后可以简化成一条命令,极大的缩短的打包时间且降低了出错率

    $ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提测” 

    以上是针对我目前项目的写法,意思为:直接在项目根目录下输出 cocoapods项目里(-w) doctor target下(-t doctor) 以debug方式打包(-C Debug) 设置Scheme 名字为 doctor (-S doctor) 打包完成后自动上传至对应Bundle id 的应用动态下,且使用原有下载短链(-p) 更新内容为 "2.5.3需求提测" (-c“2.5.3需求提测”).

    如果需要通知相关人员的话可以加上

    $ curl https://hooks.pubu.im/services/test_test_test -X POST --data-urlencode  'payload={"text":"iOS版本已更新","attachments":[{"title":"会医","description":"2.5.3需求完善","url":"http://fir.im/doctest","color":"success"}],"username":"杨永强","icon_url":"https://oivkbuqoc.qnssl.com/91305b85ec630717a36fe6b839aac79764667d23?t=1493359982.968105","buttons":[{"text":"点击下载","url":"http://fir.im/doctest"}]}'

    其中 https://hooks.pubu.im/services/test_test_test 为配置了团队协作工具 瀑布 IM 之后的post链接,作用就是使用命令快速发送自定义聊天消息,其主要业务也是将碎片化的开发时信息做统一收集,本篇暂不介绍其具体使用方法, 其具体业务内容可参考,其具体业务可参考 瀑布 IM

    使用场景

    这通知命令看起来也很繁琐,且changeLog还得写两次,其余别的参数也看起来没什么关键信息,其实fir早就帮我们想好了,在fir官网的应用配置下面直接配置瀑布IM的hook链接后可以很方便的自动帮我们做了通知人员的事情

    零信 == 瀑布IM

    其使用场景为下图,在执行完 ($ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提测”) 命令后,fir会自动发相关消息到瀑布IM

    app有更新后自动发布消息通知相关人员

    这样一来我们连通知相关人员的沟通成本都省掉了,以后就差直接往测试手机里自动装应用啦😝

    其安装方式非常简单 只需要

    $ gem install fir-cli

    更新fir.cli 为

    $ fir upgrade

    其必要安装条件及运行条件为:

    1.已安装Xcode及Xcode Command -line-tool 工具

    2.更换Ruby源为淘宝源,(如果未翻墙)

    3.确保Ruby 的 gem为最新版本

    4:确保正确配置相关开发证书及描述文件

    使用前先将fir.cli与你的账号简历绑定

    $ fir login

    这时需要输入fir账号的token来建立对应关系

    点击生成fir token

    复制token到终端即可建立绑定关系

    继续执行

    ($ fir bi -w -t doctor -C Debug -S doctor -p -c“2.5.3需求提测”)具体项目可按帮助内容执行具体命令

    在执行完打包命令后会在项目根目录下生成fir_build目录,其结构为:

    是不是很方便,甚至帮我们生成了对应的符号表文件,另外fir.cli还可集成 BugHD,如果想使用那么可直接使用命令配置实现,自动上传符号表文件,简直不要太方便.

    fir mapping指令用于将符号表上传至BugHD.com所对应的项目, 目前已经支持 dSYM 和 txt 两种格式的符号表文件上传, 有以下三种方法上传:

    指定 version 和 build 上传:

    $ fir m-P-v-b-T

    在 publish 的时候自动上传:

    $ fir p-m-P-T

    在 build_ipa 的时候自动上传:

    $ fir b-P-M -p -T

    详细的使用说明, 可以使用fir mapping -h查看

    在fir_build目录的exportOptions.plist 内容为

    均为默认参数,可修改后使用配置方便命令打包

    fir.cli 还可以直接编译 Github 上的 workspace

    $ fir build_ipa git@github.com:xxxx.git -o path/to/output -w -C Release -t allTargets GCC_PREPROCESSOR_DEFINITIONS="FOO=bar"

    当然fir.cli能做的远不止这些,具体-help 为

    Usage:

    fir build_ipa BUILD_DIR [options] [settings]

    Options:

    -B, [--branch=BRANCH]# Set branch if project is a git repo, the default is `master`

    -w, [--workspace], [--no-workspace]# true/false if build workspace

    -S, [--scheme=SCHEME]# Set the scheme NAME if build workspace

    -C, [--configuration=CONFIGURATION]# Use the build configuration NAME for building each target

    -d, [--destination=DESTINATION]# Set the destination specifier

    -t, [--target=TARGET]# Build the target specified by target name

    -E, [--export-method=EXPORT_METHOD]# for exportOptionsPlist method, ad-hoc as default

    -O, [--optionPlistPath=OPTIONPLISTPATH]# User defined exportOptionsPlist path

    -f, [--profile=PROFILE]# Set the export provisioning profile

    -o, [--output=OUTPUT]# IPA output path, the default is: BUILD_DIR/fir_build_ipa

    -p, [--publish], [--no-publish]# true/false if publish to fir.im

    -s, [--short=SHORT]# Set custom short link if publish to fir.im

    -n, [--name=NAME]# Set custom ipa name when built

    -c, [--changelog=CHANGELOG]# Set changelog if publish to fir.im

    -Q, [--qrcode], [--no-qrcode]# Generate qrcode

    -M, [--mapping], [--no-mapping]# true/false if upload app mapping file to BugHD.com

    -P, [--proj=PROJ]# Project id in BugHD.com if upload app mapping file

    [--open], [--no-open]# true/false if open for everyone

    [--password=PASSWORD]# Set password for app

    -T, [--token=TOKEN]# User's API Token at fir.im

    -L, [--logfile=LOGFILE]# Path to writable logfile

    -V, [--verbose], [--no-verbose]# Show verbose

    # Default: true

    -q, [--quiet], [--no-quiet]# Silence commands

    -h, [--help], [--no-help]# Show this help message and quit

    多种命令组合基本可适用绝大部分使用场景,还未使用的快赶紧试试吧,而且内容中提到的瀑布IM 功能也非常强大,囊括了绝大部分为提升开发效率而生的工具,其强强联合必然会让你的团队开发如虎添翼,试想下团队中的任何人的任何一次提交整个项目任何一小个动作都能在一个IM应用里收到通知并提供相关功能作分类查找处理,那沟通成本必然会大大降低.

    近百项支持应用

    本人第一篇博文,不足之处还望大家能及时指出,相关的问题也可私聊我,一直致力于团队开发效率提升,大家有什么效率提升的好工具可以留言给我哈,感谢先

    下一篇继续介绍使用该工具自动打包安卓项目的步骤

    相关文章

      网友评论

      • macfai:楼主,你好,请问你遇到过这个问题吗 ERROR -- : The xcworkspace file is missing, check the BUILD_DIR
        我没有用cocopods ,所以就不存在什么xcworkspace ,只有一个xcodeproject这个东西,请问能加个qq聊吗
        macfai:@蝶恋花00张 楼主没有回复 ,请求楼主回复啊
        9987a8a5aaab:同样的问题?怎么解决

      本文标题:使用 Fir.cli 工具实现快速打包 一 (iOS版本)

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