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 安装 fastlane

brew install fastlane

安装成功,查看版本
在这里插入图片描述

1.3 加入蒲公英插件

 fastlane add_plugin pgyer  或者 bundle exec fastlane add_plugin pgyer 

具体查看蒲公英官方文档 使用 Fastlane 上传 App 到蒲公英
中间有一个需要 按 y 回车确认,这是第二次按照截图了,抱歉
在这里插入图片描述
安装后 Gemfile 信息增加如下

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

2. fastlane 配置

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

打开终端 cd 到工程目录下,如下图
在这里插入图片描述

2.2 初始化 fastlane

fastlane init

在这里插入图片描述
终端里面让您选择,我这边是选择了 4;
中间会有很多 Continue by pressing Enter ⏎ ,需要你敲几次回车键
然后就会看到生成 fastlane 文件,如下图所示
在这里插入图片描述
如遇到bundle update 失败提示,请查看 4.3

2.3 编辑 Fastfile 脚本文件

打开刚刚生成的 fastlane/Fastfile 文件,默认生成文本如下
在这里插入图片描述

2.3.1最终 的 Fastfile 脚本文件内容

蒲公英账号需要自己配置,如果1.3 未执行,或者没有账号,请注释或删除掉, 2.3.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.3.2蒲公英的 key 获取

去自己的蒲公英账号好复制即可
在这里插入图片描述

3. fastlane 自动打包上传

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

fastlane XXX 或者 bundle exec fastlane xxx
这个 XXX,就是 Fastfile 文件里面,lane:后面的文字,我的名称是 app,就是 fastlane app
在这里插入图片描述

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

成功提示
在这里插入图片描述
mac 上成功通知在这里插入图片描述
蒲公英上上传成功在这里插入图片描述

会在你output_directory 设置的文件夹中的 myApp.ipa
在这里插入图片描述

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 + 蒲公英)

猜你喜欢

转载自blog.csdn.net/u014651417/article/details/124971022