iOS 使用 Fastlane 实现自动打包

西门桃桃 2020-07-28 PM 136℃ 0条

fastlane.png

Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化你的工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布App

一、安装xcode命令行工具

xcode-select --install

如果没有安装,会弹出对话框,点击安装。如果提示:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

表示已经安装

二、安装Fastlane

sudo gem install fastlane -NV

或者:

brew cask install fastlane

安装完成后执行:

fastlane --version

确认下是否安装完成和当前使用的版本号。

三、初始化Fastlane

终端cd到工程项目的目录执行:

fastlane init

Fastlane_init.png

这里会弹出四个选项,问你想要用Fastlane做什么?

第一个选项的意思是:自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框(如果需要的话) 第二个选项的意思是:自动发布beta版本用于TestFlight 第三个选项的意思是:自动发布到AppStore 第四个选项的意思是:手动设置

我在这里选的是2(大家可根据自己需要选择)

如果你的工程是用cocoapods的那么可能会提示让你勾选工程的Scheme,步骤就是打开你的xcode,点击Manage Schemes,在一堆三方库中找到你的项目Scheme,在后面的多选框中进行勾选,然后终端移除fastlane文件夹:

rm -rf fastlane

重新初始化一次:

fastlane init

就不会报错了。

fastlane_error.png

接着会提示你输入开发者账号和密码。

[20:48:55]: Please enter your Apple ID developer credentials

[20:48:55]: Apple ID Username:

登录成功后会提示你是否需要下载你的App的metadata。点y等待就可以。

如果报其他错的话,一般会带有github的相似的Issues的链接,里面一般都会有解决方案。

四、文件系统

初始化成功后会在当前工程目录生成一个fastlane文件夹,文件目录:

fastlane_files.png

其中metadata和screenshots分别对应App元数据和商店应用截图。

Appfile:存放App的apple_id team_id app_identifier等信息

Deliverfile:发布的配置信息,一般情况用不到。

Fastfile:我们的工作文件。

Appfile

app_identifier("APP的Bundle ID") # The bundle identifier of your app
apple_id("你的AppleID") # Your Apple email address

itc_team_id("你的Team ID") # App Store Connect Team ID
team_id("你的开发Team ID") # Developer Portal Team ID

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

Fastfile

default_platform(:ios)

platform :ios do
  desc "Push a new release build to the App Store"
  lane :release do
    build_app(workspace: "工程名.xcworkspace", scheme: "工程scheme")
    upload_to_app_store(skip_screenshots: true,skip_metadata: true)
  end
  lane :beta do
    build_app(export_method: "ad-hoc")
    pgyer(api_key: "蒲公英api_key", user_key: "蒲公英user_key")
  end
end

Fastfile中lane的用法可以参阅文档:fastlane docs,中文文档:fastlane docs 中文文档

安装蒲公英插件

fastlane add_plugin pgyer

安装完插件之后Pluginfile文件内容如下:

# Autogenerated by fastlane
#
# Ensure this file is checked in to source control!

gem 'fastlane-plugin-pgyer'

五、执行打包命令

终端执行命令:

fastlane beta

然后等待,终端出现fastlane.tools finished successfully,这会儿就可以在蒲公英上看到最新上传的包了。关于证书的管理可以参考文章:iOS使用 fastlane match 管理代码签名

注意

1、可以在before_all中做一些前置操作,比如进行build号的更新,我个人建议不要对Version进行自动修改,可以作为参数传递进来

2、如果ipa包存放的文件夹为工作区,记得在.gitignore中进行忽略处理,我建议把fastlane文件也进行忽略,否则回退版本打包时缺失文件还需要手动打包。

3、如果你的Apple ID在登录时进行了验证码验证,那么需要设置一个专业密码供fastlane上传使用,否则是上传不上去的。

4、如果你们的应用截图和Metadata信息是运营人员负责编辑和维护的,那么在打包到AppStore时,记得要忽略截图和元数据,否则有可能因为不一致而导致覆盖。skip_metadata:true, #不上传元数据 skip_screenshots:true,#不上传屏幕截图

标签: Fastlane

非特殊说明,本博所有文章均为博主原创。

评论啦~