iOS 使用 Fastlane 在 Github 上部署 CI/CD 自动化打包并发布到 Testflight。

首先需要在项目中集成 fastlane (具体集成方法可直接查阅 fastlant 官网,本文中不阐述集成方法)。

需要拿到 apple 官方账号相关信息,包括 P12文件相关证书apple相关账号信息UUID等。

在 GitHub 中启用 workflows 并在 settings 中配置相关密钥。

注:其中文件类型需要使用 base64 编码进行存储,以下出现 ENV['XXXX'] 样式,均使用的该配置信息。

到此准备工作已完成。

Fastlane 相关配置

appfile 文件配置

app_identifier:项目的 id

apple_id:个人发布者的 apple 账号 id

itc_team_id:连接应用商店的团队 id

team_id:账号的团队 id

Fastfile 相关配置

lane :canary do: 启动方式在 workflows 文件中会使用。

setup_app_store_connect_api_key:连接 app store 相关配置信息需通过 apple 开发者账号获取。

latest_number:通过 id 获取最新版本号。

build_id:生成本次版本号。

update_app_identifier: 更新 apple 的相关信息。

build_ios_app: 进行 iOS 打包操作。

upload_to_testflight: 上传到 TestFlight 。 appstroe 使用 upload_to_app_store 。

slack: 发布成功后发送消息到 slack (可根据 fastlane 官方文档发送到不同的 app 中)。

workflows 配置

workflows 中配置是为了创建 iOS 打包环境,使 fastlane 打包成功。

配置 workflows 文件触发条件,图片中是合并到 canary 分支时会触发该任务。

确定打包运行环境为 macos-12 (可选其他环境,具体以官方数据为准)。

在环境中创建 ./fastlane/Signing 文件夹,以便后续使用。

后续 ${{ secrets.XXXXXX }} 均为使用 GitHub 配置相关信息, 其中 XXXXXX 为配置的 Title 。

取出 development 和 distribution 环境的 P12文件和证书文件。

创建钥匙串,使用 P12 文件的密码,将 P12 文件安装到钥匙串中。

创建 /Library/MobileDevice/Provisioning\ Profiles 文件夹,并将证书文件安装到该文件夹中。

在环境中安装 fastlane ,更新相关依赖,并获取相关配置信息,以供 fastlane 相关配置使用。

fastlane canary:和 fastfile 文件中 lane :canary do 对应,用来启动 fastlane 自动打包。

FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT:配置超时时间,防止 apple 打包时间过长,系统认为打包失败。

打包完成后,删除配置的相关信息。

到此 iOS 使用 Fastlane 在 GitHub 上部署 CI/CD 自动化打包并发布已完成。

如果项目中有使用第三方登录,如 Google 登录,只需要在 workflows 文件中配置登录相关的信息即可。

同理可以在 workflows 中配置相关信息用来更改不同环境的 icon 等。

相关推荐
2501_9160074720 小时前
手机使用过的痕迹能查到吗?完整查询指南与步骤
android·ios·智能手机·小程序·uni-app·iphone·webview
從南走到北21 小时前
JAVA国际版同城外卖跑腿团购到店跑腿多合一APP系统源码支持Android+IOS+H5
android·java·ios·微信小程序·小程序
alengan1 天前
苹果企业签名流程
ios·iphone
Digitally1 天前
如何在Mac上同步iPhone短信
macos·ios·iphone
2501_915106321 天前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
2501_916008892 天前
金融类 App 加密加固方法,多工具组合的工程化实践(金融级别/IPA 加固/无源码落地/Ipa Guard + 流水线)
android·ios·金融·小程序·uni-app·iphone·webview
2501_915921432 天前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
游戏开发爱好者82 天前
iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
android·macos·ios·小程序·uni-app·iphone·webview
qixingchao2 天前
iOS SwiftUI 动画开发指南
ios·swiftui·swift
alengan2 天前
ios支付
macos·ios·cocoa