上篇文章主要配置自动化环境,地址在这里,今天这篇文章,主要用fastlane来打包。如果要出一个ipa包,证书是绕不过的话题,但是原先的配置证书流程比较适合个人使用,fastlane的match功能,在团队协作中起到很好的效果。
1、match 命令
match是一种全新的证书和配置文件管理工具,它会把所有需要用到的证书传到git私有库上,任何需要配置的机器直接用match同步证书。团队所有成员共享一份代码签名,以减免不必要的证书创建。
进入项目目录执行
bundle exec fastlane match init
系统会提示输入git仓库的链接,需确保当前账户有git仓库的访问权限。执行完成后会在fastlane目录下生成一个Matchfile文件,里面保存着你刚才输入的git仓库链接。
官方建议通过命令清除之前的证书和描述文件,企业账号慎用,销毁描述文件可能会导致App无法打开。
bundle exec fastlane match nuke development ---开发证书
bundle exec fastlane match nuke distribution ---apple store 和 adhoc使用此命令
bundle exec fastlane match nuke enterprise ---企业证书
生成证书和pp文件
bundle exec fastlane match development
bundle exec fastlane match adhot
bundle exec fastlane match appstore
2、fastlane 插件
因为我们打包使用到了fastlane的两个插件,下面介绍一下。
安装蒲公英的插件,这个用来上传ipa包
bundle exec fastlane add_plugin pgyer
安装 fastlane-plugin-versioning 插件,这个用来改build号,后面的代码中会用到。
bundle exec fastlane add_plugin fastlane-plugin-versioning
3、编写Fastfile文件
首先要有一个存放rb文件的git仓库,我们把所有的 lane 都单独的配置到rb文件中,方便以后有多个项目使用。下面是Fastfile文件的样式,用到几个rb文件,就引用几个。
import_from_git(
url: "",
#branch: "develop",
path: "lib/used/fastlane.match.rb",
# version: "0.1.9"
)
rb仓库中文件目录:具体的文件已经上传到文章中。
看一下项目的根目录:
注意里面有个 .env.desktop 文件,这个是配置文件,每个项目都可以配置。
具体代码如下,要配合上面的rb文件使用。
#---------- Xcode Select ----------------
XCODE_SELECT = "/Applications/Xcode.app"
#----------- Common Environment --------------
APP_SCHEME = "JMDesktop"
TARGET_NAME = "JMDesktop"
APP_NAME = "JMDesktop"
WORKSPACE = "JMDesktop.xcworkspace"
OUTPUT_PATH = "./build"
BUNDLE_IDENTIFIER = "自己添加"
EXTENSION_BUNDLE_INDENTIFIERS = "自己添加"
#----------- App Store Connect --------------
CONNECT_KEY_ID = "自己添加"
CONNECT_ISSUER_ID = "自己添加"
CONNECT_KEY_FILEPATH = "./fastlane/AuthKey_58HA867456.p8"
#----------- Match --------------
TEAM_ID = "HMH5V2V4JC"
DEVELOPMENT_CERTS_GIT_URL = "自己添加"
DISTRIBUTION_CERTS_GIT_URL = "自己添加"
MATCH_GIT_BRANCH = "master"
DEVICES_PATH = "./fastlane/devices.txt"
#----------- PGYER --------------
PGYER_API_KEY = "自己添加"
OVERSEA = "1"
4、如何使用
按照上面的文件配置好了之后,进入到项目的根目录:如果要打包,
bundle exec fastlane build_appstore --env desktop
bundle exec fastlane build_develop --env desktop
bundle exec fastlane build_adhoc --env desktop
如果要配置证书:
bundle exec fastlane match_appstore readonly:false --env desktop