当先锋百科网

首页 1 2 3 4 5 6 7

前言
Fastlane 是一款为 iOS 和 Android 开发者提供的自动化构建工具,它可以帮助开发者将 App 打包、签名、测试、发布、信息整理、提交 App Store 等工作完整的连接起来,实现完全自动化的工作流,如果使用得当,可以显著的提高开发者的开发效率。

前置条件
安装fastlane之前,我们得安装ruby,因为fastlane使用ruby语言写的,
安装ruby前,我们要先安装一个mac软件包管理工具Homebrew。

一.控制台安装命令安装ruby

brew install ruby

二.安装fastlane,使用控制器安装命令:

gem install fastlane -NV

如果安装错误提示 提示没有写入权限
ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions for the /

在命令前面添加sudo
sudo gem install fastlane -NV

安装成功输入fastlane --version看是否有版本号显示

三.初始化fastlane

输入命令fastlane init

输入命令fastlane init会看到如下选项
What would you like to use fastlane for?

  1. Automate screenshots
  2. Automate beta distribution to TestFlight
  3. Automate App Store distribution
  4. Manual setup - manually setup your project to automate your tasks
    对应如下
    1.自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框(如果需要的话),我们这里不选择这个选项,因为我们的项目已经有图片了,不需要这里截屏。

2.自动发布beta版本用于TestFlight,如果大家有对TestFlight不了解的,可以参考王巍写的这篇文章

3自动的App Store发布包。我们的目标是要提交审核到APP Store,按道理应该选这个,但这里我们先不选,因为选择了以后会需要输入用户名密码,以及下载meta信息,需要花费一定时间,这些数据我们可以后期进行配置。

4手动设置。
选择第四个后一路回车即可,我们会看到生成了我们熟悉的fastlane目录,该目录下包含了Appfile和Fastfile。我们打开这两个文件。

因为我们是需要打包上传到蒲公英,所以选4
初始化成功会在项目目录下生成如下文件
在这里插入图片描述

Appfile 配置工程AppID和AppleID(开发者账号)

  1. #app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
  2. apple_id("[[APPLE_ID]]") # Your Apple email address # apple_id("[[APPLE_ID]]") # Your Apple email address

Fastfile 管理工程的lane的各个action,可以看成设置的任务流程

四.安装Xcode命令行工具:

打开终端执行:xcode-select --install

五.安装蒲公英的 Fastlane 插件

在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。
fastlane add_plugin pgyer

打开终端进入项目根目录下 输入fastlane add_plugin pgyer ,否者后面上传蒲公英会报错

Fastfile打包文件修改
下面是一个最简单的Fastfile打包文件在这里插入图片描述

六.打开终端进入项目所在目录执行

fastlane develop 即可打包上传到蒲公英

上传成功显示如下
在这里插入图片描述

lane :inhouse do

以下两个action来自fastlane-plugin-versioning,

第一个递增 Build,第二个设定Version。

如果你有多个target,就必须指定target的值,否则它会直接找找到的第一个plist修改

increment_build_number_in_plist(target: 'FastlaneTest')
increment_version_number_in_plist(
  target: 'FastlaneTest',
  version_number: '1.0'
)
# gym用来编译ipa
gym(scheme: 'FastlaneTest',#打包scheme
export_method:"enterprise",#打包类型app-store, ad-hoc, enterprise, development
output_directory: "./build",#ipa打包存放路径
output_name: 'inhouse.ipa'#ipa名称
)

end