iOS fastlane 自动打包,上传蒲公英

前言

在开发中经常需要打测试包,然后上传至蒲公英等三方平台,这其中需要经历的操作为:

  • 设置项目的打包环境
  • 利用 xcode 进行打包
  • 上传至蒲公英等三方平台

每一次打包上面的过程必不可少,而且都是手工的,本篇文章我们采用CD(Continuous Delivery)持续交付和CI(Continuous Integration)持续集成来进行自动化打包一键操作,解放双手,拒绝手动的重复低效率劳动。

本篇文章讲解如何使用 fastlane 自动打包

1. 安装环境

1.1 安装 Homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装成功,查看版本


1-2.png

1.2 安装 fastlane

brew install fastlane

安装成功,查看版本

1-1.png

2. fastlane 配置

2.1 进入到工程目录 .xcworkspace 下面

打开终端 cd 到工程目录下,如下图


2-1.png

2.2 初始化 fastlane

fastlane init
2-2.png

终端里面让您选择,我这边是选择了 4;
中间会有很多 Continue by pressing Enter ⏎ ,需要你敲几次回车键
然后就会看到生成 fastlane 文件,如下图所示


2-21.png

2.3 加入蒲公英插件

 fastlane add_plugin pgyer  或者 bundle exec fastlane add_plugin pgyer 

具体查看蒲公英官方文档 使用 Fastlane 上传 App 到蒲公英
中间有一个需要 按 y 回车确认,这是第二次按照截图了,可能有些不一样

image.png

安装后 Gemfile 信息增加如下

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

2.4 编辑 Fastfile 脚本文件

打开刚刚生成的 fastlane/Fastfile 文件,默认生成文本如下


2-3.png

2.4.1最终 的 Fastfile 脚本文件内容

蒲公英账号需要自己配置,如果1.3 未执行,或者没有账号,请注释或删除掉, 2.4.2 有如何获取蒲公英账号key的截图,

default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  # 打包时候用的名称   例如 fastlane app
  lane :app do 
    # add actions here: https://docs.fastlane.tools/actions
    gym(
    # 每次打包之前clean一下
    clean: true,    
    # 打包出 ipa 文件的路径,我放到了桌面文件夹,你自行更改文件夹
    output_directory: '/Users/hengqianjin/Desktop/APP', 
    # 打包的名称,可任意取 
    output_name: 'myApp.ipa', 
    # 项目的 scheme,自己项目名   .xcworkspace 前面的项目名就是
    scheme: "Farm",      
    # 默认 Release,Release or Debug     
    configuration: 'Debug', 
    # 是否包含 bitcode  
    include_bitcode: false,  
    # 是否包含 symbols 
    include_symbols: true, 
    # 打包导出方式,包含 app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application   
    export_method: 'development',  
    # 这个设置是为了设置 xcode 自动配置证书和配置文件,当然也可以手动配置,可以参考文档
    export_xcargs: '-allowProvisioningUpdates' 
    )
    # mac上的通知弹窗,通知打包完毕
    notification(app_icon: "./fastlane/icon.png", title: "manager", subtitle: "打包成功,已导出安装包", message: "准备发布到蒲公英中……")
    #配置上传蒲公英账号  蒲公英的 api_key和 user_key  用自己蒲公英账号的,别用我的!!!如果没有可删除
    pgyer(api_key:'fbf25d2a525e12d5084b0ae09098ab7b', user_key: '12bba6204bd7c3e26375f653f8086358', update_description: "测试fastlane自动打包")
  end
end

2.4.2蒲公英的 key 获取

去自己的蒲公英账号好复制即可


image.png

3. fastlane 自动打包上传

3.1 运行脚本,进行自动化打包

fastlane XXX 或者 bundle exec fastlane xxx
这个 XXX,就是 Fastfile 文件里面,lane:后面的文字,我的名称是 app,就是 fastlane app


3-1.png

3.2 打包成功,生成.ipa文件、上传至蒲公英发布、 mac 上发送通知

成功提示


3-2.png

mac 上成功通知


3-21.png

蒲公英上上传成功


3-22.png

你output_directory 设置的文件夹中的 myApp.ipa


3-23.png

4.问题or总结

4.1 fastlane 上面打包步骤支持 OC 和Swift

我分别使用了OC创建的项目和Swift创建的项目,均能打包发布成功

4.2 使用之前请确保证书齐全

请使用之前保证 Xcode 能正常打包没问题,否则会导致打包失败,亲测Swift项目无证书打包失败

4.3 fastlane init 问题

由于 https://rubygems.org 部署在国外,有时候可能因为网络原因导致失败!(可能,这里是可能失败,网络好可以无视)
失败时候终端提示 bundle update,同时Gemfile不会生成Gemfile.lock文件,而且会导致后续打包失败

4.3 问题解决办法

打开Gemfile, 进行替换源 https://rubygems.org/ 替换为 https://gems.ruby-china.com/

#source "https://rubygems.org"
https://gems.ruby-china.com/

替换后执行 bundle update

4.4 自动打包耗时问题

此处只是自动打包,但是依旧需要时间的,项目越大越耗时,只是节省了手动操作步骤

参考文章
最简单安装 brew 的方法
iOS 自动化打包(fastlane),真香定律
iOS 基于 fastlane 和 jenkins 的自动化打包
iOS 自动化打包发布(Fastlane + 蒲公英)

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

推荐阅读更多精彩内容