极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包

一直以来,iOS/macOS 开发者面临一个难题:大部分云厂商只提供 Linux/Windows 服务器,而不提供 Mac,如果想实现「持续集成自动打包」就需要绑定自己的 Mac 作为构建机。如果用个人 Mac,一旦关机,小组同事就无法构建;如果再买一台公共 Mac,又造成浪费。

2022 年 6 月,Apple 在 WWDC(全球开发者大会)上宣布 Xcode Cloud 服务正式推出,提供 CI/CD 功能。

作为持续集成,首先要对接代码库,Xcode Cloud 支持 3 家全球知名的代码库:

Bitbucket、GitHub、GitLab

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第1张图片

本文以 flutter/iOS 项目为例,讲解「极狐 GitLab 代码库对接 Xcode Cloud」,实现自动打包。

  1. Xcode——》Product——》Xcode Cloud——》Create Workflow,一直点下一步即可

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第2张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第3张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第4张图片

2. 点击「Grant Access」,即授权代码库

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第5张图片

3. 选择「GitLab Self-Managed」,注意:不管是极狐 GitLab SaaS 还是私有化都选择这个。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第6张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第7张图片

  1. 选择「GitLab Self-Managed」,注意:不管是极狐 GitLab SaaS 还是私有化都选择这个。

https://appstoreconnect.apple.com/ci/api/scms/auth/gitlab-hosted/callback

范围选择:api、read_repository 和 read_user。

创建成功,获得「应用程序 ID」和「密码」,填写到 Apple 网站上,点击下一步进行授权。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第8张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第9张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第10张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第11张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第12张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第13张图片

  1. 授权成功,回到 Xcode,点击下一步进行首次构建。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第14张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第15张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第16张图片

  1. 提交代码到极狐 GitLab,会立即触发 Xcode Cloud 打包。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第17张图片

  1. 高级设置:自动发布到 Testflight 测试通道。

Xcode——》Product——》Xcode Cloud——》Manage Workflows——》双击或右键 Edit——》

  • Archive iOS——》Deployment Preparation 选择 Testflight (Internal Testing Only)
  • Post-Actions——》Add——》Testflight Internal Testing——》Groups——》Add group(需要先在 Testflight 网页上创建测试组)

注意:Xcode Cloud 网页上的部署准备(Deployment Preparation)没有 Testflight 选项,估计是 Apple 的 bug。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第18张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第19张图片

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第20张图片

  1. 高级设置:在极狐 GitLab CI 里扫描代码规范、打包 Android,在 Xcode Cloud 里打包 iOS。

如果配置极狐 GitLab CI(即 .gitlab-ci.yml),会看到除了自己编写的步骤,无需配置就会多出来一步 external,即为 Xcode Cloud。

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包_第21张图片

你可能感兴趣的:(gitlab,xcode,ios)