Fastlane简介

木木木大约 6 分钟iOS

Fastlane简介

Fastlaneopen in new window是一个流行的用于iOS和Android应用程序自动化构建和发布的自动化打包工具。它可以帮助你自动执行各种任务,例如编译代码、打包应用程序、生成屏幕截图、发布应用程序等等。

安装Fastlane

安装Xcode和命令行工具

Fastlane需要Xcode和命令行工具来工作。如果你还没有安装Xcode和命令行工具,请先在App Store中安装Xcode,并在终端中运行以下命令安装命令行工具:

xcode-select --install

安装Ruby和Bundler

Fastlane是用Ruby编写的,因此你需要安装Ruby和Bundler来运行Fastlane。可以在终端中运行以下命令来安装Ruby和Bundler:

brew install ruby
gem install bundler

安装Fastlane

安装了Ruby和Bundler,你以使用Bundler来安装Fastlane。Bundler可以管理你项目中的各种依赖项,并确保它们的版本兼容。
首先,创建一个新的目录,并切换到该目录:

mkdir my_fastlane_project
cd my_fastlane_project

然后,创建一个Gemfile文件并编辑它,将以下内容复制到文件中:

source "https://rubygems.org"
gem "fastlane"

保存文件后,运行以下命令来安装Fastlane:

bundle install

这会安装Fastlane及其依赖项。

测试Fastlane

一旦Fastlane安装完成,可以在终端中输入以下命令来测试Fastlane是否可以正常工作:

fastlane --version

如果一切正常将看到Fastlane的版本号。现已经成功地安装了Fastlane,可以开始使用它来自动化构建和发布iOS应用程序了。

配置Fastfile

创建Fastfile

首先创建一个Fastfile文件。在终端中,进入你的iOS项目根目录,并输入以下命令来创建一个Fastfile文件:

fastlane init

这会启动一个向导,帮助创建Fastfile文件和其他必要的文件和目录。

配置代码签名证书和描述文件

在Fastfile中需要配置代码签名证书和描述文件,以便能够构建和发布你的应用程序。可以使用Fastlane的match插件来生成代码签名证书和描述文件,并自动管理它们的更新。

打开Fastfile文件,并在文件顶部添加以下代码:

# 定义match任务
lane :match do
  # 使用match插件生成代码签名证书和描述文件
  match(type: "appstore")
end

定义了一个名为match的任务,并使用match插件来生成类型为"appstore"的代码签名证书和描述文件。你可以根据你的需要更改类型,例如"development"、"ad-hoc"等等。

配置编译和打包任务

一旦配置了代码签名证书和描述文件,就可以配置编译和打包任务。可以使用Fastlane的gym插件来编译代码,并生成IPA文件。

打开Fastfile文件,并在文件顶部添加以下代码:

# 定义build任务
lane :build do
  # 使用gym插件编译代码
  gym(scheme: "MyApp")
end

定义了一个名为build的任务,并使用gym插件来编译名为"MyApp"的应用程序。

配置发布任务

最后,你可以配置发布任务,以便将应用程序上传到App Store或其他分发渠道。可以使用Fastlane的deliver插件来自动化发布过程。

打开Fastfile文件,并在文件顶部添加以下代码:

# 定义release任务
lane :release do
  # 使用deliver插件上传应用程序
  deliver
end

定义了一个名为release的任务,并使用deliver插件来上传应用程序。

运行任务

一旦配置了Fastfile文件,你可以在终端中输入以下命令来运行任务:

fastlane <task_name>

其中,<task_name>是你在Fastfile文件中定义的任务名称。例如,要运行match任务,你可以输入以下命令:

fastlane match

自定义配置

可以根据你的需要自定义配置,例如定义构建参数、上传到其他分发渠道、发送通知等等。以下是一些示例代码:

  • 自定义构建参数 可以使用gym插件的参数来自定义编译和打包过程。例如,你可以指定输出的IPA文件名,使用自定义的配置文件等等。以下是一个示例代码:
gym(
  scheme: "MyApp",
  output_name: "MyApp_v1.0.ipa",
  configuration: "Release",
  export_options: {
    method: "app-store",
    signingStyle: "manual",
    provisioningProfiles: {
      "com.example.MyApp": "MyApp_AppStore",
    }
  }
)

使用了自定义的参数,例如output_name来指定输出的IPA文件名,configuration来指定编译配置,export_options来指定打包选项。

  • 上传到其他分发渠道 除了上传到App Store,还可以使用Fastlane的其他插件将应用程序上传到其他分发渠道,例如TestFlight、HockeyApp等等。以下是一个示例代码:
pilot(
  ipa: "MyApp_v1.0.ipa",
  skip_submission: true,
  skip_waiting_for_build_processing: true,
  distribute_external: true,
  distribute_app_clip: true
)

在上面的代码中使用了pilot插件来上传应用程序。我们指定了ipa参数来指定上传的IPA文件,skip_submission参数来跳过提交应用程序审核,skip_waiting_for_build_processing参数来跳过等待构建处理的步骤,distribute_external参数来指定是否分发到外部测试人员,distribute_app_clip参数来指定是否分发应用程序剪辑。

  • 发送通知 可以使用Fastlane的其他插件来发送通知,例如Slack、HipChat等等。以下是一个示例代码:
slack(
  message: "MyApp已经发布到App Store!",
  success: true,
  channel: "#myapp",
  username: "Fastlane"
)

在上面的代码中使用了slack插件来发送Slack通知。我们指定了message参数来指定通知消息,success参数来指定是否发送成功消息,channel参数来指定发送到的Slack频道,username参数来指定通知的发送者名称。

Fastlane插件

Fastlane还提供了许多插件,用于扩展Fastlane的功能。你可以在Fastlane插件库中找到各种有用的插件,例如:

  • match:用于管理和自动化生成iOS和macOS的代码签名证书和描述文件。
  • snapshot:用于自动化生成应用程序屏幕截图。
  • gym-scan:用于自动化运行XCTest测试并生成测试报告。 可以通过Fastlane的命令行界面来安装和使用这些插件。例如,要安装match插件,请在终端中输入以下命令:
fastlane add_plugin match

然后,可以在Fastfile中使用match插件来自动管理和生成iOS和macOS的代码签名证书和描述文件。例如,以下是一个使用match插件的Fastfile示例:

lane :build_app do
  # 使用match插件生成代码签名证书和描述文件
  match(
    type: "appstore",
    app_identifier: "com.yourcompany.myapp",
    username: "your_apple_id"
  )

  # 编译代码
  gym(
    scheme: "MyApp",
    clean: true
  )

  # 打包应用程序
  deliver(
    username: "your_apple_id",
    app_identifier: "com.yourcompany.myapp",
    ipa: "./MyApp.ipa"
  )
end

在上面的示例中使用match插件来生成代码签名证书和描述文件,然后使用gym工具来编译代码,使用deliver工具来打包应用程序并上传到App Store。

运行Fastlane

完成Fastfile的配置,你可以使用Fastlane命令来运行自动化任务。例如,要运行上面的示例,请在终端中输入以下命令:

fastlane build_app

Fastlane会自动下载代码、安装依赖项、编译代码、打包应用程序,并将打包好的应用程序上传到App Store。

上次编辑于:
贡献者: perhapsdone