是否可以为 iOS 应用程序开发设置持续集成和持续部署?

Posted

技术标签:

【中文标题】是否可以为 iOS 应用程序开发设置持续集成和持续部署?【英文标题】:Is it possible to setup Continuous Integration & Continuous Deployment for iOS app development? 【发布时间】:2019-04-10 09:22:04 【问题描述】:

我正在寻找一种方法来为 ios 应用程序开发设置集中式持续集成和持续部署。就像我们为 Maven 或 Gradle 构建所做的那样。

我发现了几篇文章解释了如何实现这一点,但他们都在使用 Xcode 来构建 iOS 应用程序。这里的关键是 Xcode 只能在 MacOS 上运行。

我找到了 Jenkins Xcode 插件,但它清楚地说明了,

显然,构建机器必须是带有 XCode 的 OSX 机器 已安装开发者工具。

即使我们将开发者的一台 OSX 机器作为 Jenkins 代理,我们也不能保证开发者的 OSX 机器将始终连接到 Jenkins 主服务器。如果其他人想要构建应用程序并且运行 Jenkins 代理的 OSX 机器不可用怎么办?

我找到了 fastlane,但这似乎也可以自动执行一些手动步骤,例如截屏、代码签名、发布应用程序。如果我没记错的话,它必须只在开发人员机器上运行。

人们用来实现这一目标的通用方法是什么?

【问题讨论】:

【参考方案1】:

对于 CI/CD,您可以使用远程构建服务器,例如 Microsoft (https://appcenter.ms/) 或其他的 AppCenter。 而且,显然,如果没有 mac 机器来构建应用程序,您将无法构建自己的系统 CI/CD。不幸的是,开发者不能在没有 Apple Machine 的情况下构建应用程序。 这是iOS开发的主要问题。 在这种情况下,android 更好。

【讨论】:

以上是关于是否可以为 iOS 应用程序开发设置持续集成和持续部署?的主要内容,如果未能解决你的问题,请参考以下文章

jenkins持续集成iOS开发

占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题

持续集成

Xcode server持续集成测试跑起来

iOS 中使用Jenkins进行持续集成

jenkins 持续集成iOS开发