如何在没有Mac的情况下自动为iOS签署Flutter应用

对于任何iOS开发人员来说,在将iOS应用安装到物理设备上并通过App Store交付给最终用户之前,都无需对iOS应用签名。 您所需要做的就是一个Apple开发人员帐户,一个有效的签名证书,一个匹配的配置文件……以及一台Mac来生成这些文件。 听起来很麻烦? 从与Stackoverflow上的iOS代码签名相关的问题数量来看,许多开发人员都为此感到困惑。 我们知道,设置代码签名可能会让人头疼,尤其是当您尝试使其在CI / CD环境中工作时,尤其是在为多个平台进行开发时,更是如此,例如Flutter SDK ,并且没有Mac。

但是,等等,我们对所有Flutter开发人员来说都是个好消息! 通过消除常规iOS代码签名过程中所需的某些步骤,Codemagic使整个代码签名业务比以往任何时候都容易。

介绍传统iOS代码签名的替代方法

如果我们告诉您不再需要Mac才能对iOS的Flutter应用进行签名怎么办? 而且,如果您不必担心签名文件又可以让Codemagic免费为您处理所有这些,该怎么办? 这就是我们的意思:Codemagic通过应用程序内生成签名证书和供应配置文件,为iOS的Flutter应用程序提供自动代码签名,从而允许您在构建过程中对应用程序进行签名并将其发送到App Store。 继续阅读以获取代码签名基础知识和Codemagic的新自动代码签名功能的概述。

了解iOS代码签名的基础

在我们描述Codemagic如何通过为iOS签署Flutter应用来实现其魔力之前,让我们先了解一下iOS代码签名通常需要的内容。

  • 苹果开发人员帐户 。 必须注册Apple Developer Program才能使用TestFlight进行Beta测试或将该应用发布给App Store上的最终用户。 还需要能够请求证书和下载配置文件。 但是,如果您只是在寻找一种可以在真实设备上安装的版本的方法,则可以按照本教程的有关如何在iPhone上部署应用程序而无需注册Apple Developer Program(但您确实需要Mac)。
  • 签名证书 。 证书是一个公钥/私钥对,可用于识别谁开发了代码。 有一个个人开发证书,用于在开发过程中对应用程序进行代码签名,还有(共享的) App Store和Ad Hoc分发证书,用于对应用程序进行代码签名时进行分发。
  • 供应配置文件 。 配给配置文件包含有关应用程序ID,可在其上安装应用程序的设备以及可用于对应用程序进行签名的证书的信息。 与证书一样,有一个开发配置文件,用于在开发过程中对应用程序进行代码签名,并提供分发配置文件(即席或应用商店)进行分发。 更具体地说, Ad Hoc分发配置文件可用于将应用分发给非Testflight测试人员(例如,通过HockeyApp),而您需要使用App Store分发配置文件在TestFlight上进行测试或发布到App Store。 与其他供应配置文件不同,App Store分发配置文件未链接到特定设备。
  • Mac 。 您需要Mac才能首先从Apple请求证书,然后再生成可以上传到第三方系统的证书文件。 开发Flutter应用程序时并不需要Mac,因此,当您没有可以使用的Mac时,这部分代码签名过程可能会成为问题。

综上所述,您将需要使用开发证书以及开发配置文件来对代码进行签名,并在开发过程中将应用程序安装在实际设备上。 当您计划将应用程序发布给测试人员或将其发布到App Store时,您将需要使用分发证书以及适当的分发设置配置文件。 为了做到这一点,您必须是Apple Developer Program的成员,并拥有一台Mac,才能获得进行签名所需的文件。

如果您想了解更多有关此主题的信息,可以查看《 iOS预置配置文件初学者指南》。

Codemagic如何运作

使用自动代码签名,您可以让Codemagic为您生成签名证书和匹配的配置文件,并将其用于代码签名。 根据所选的配置文件类型,Codemagic将创建一个开发发行证书以及一个开发临时应用程序商店配置文件。 这样,您无需拥有Mac,即可获得可以在真实设备上安装并分发到App Store的签名版本。

使用自动代码签名的要求

在设置自动代码签名之前,让我们先了解一下使用Codemagic的自动代码签名功能所需要的内容。

  • 苹果开发人员帐户 。 您仍然需要成为Apple Developer Program的成员才能签名代码并分发您的应用程序。 Codemagic将需要您的Apple开发人员门户用户名和密码来为您生成证书和配置文件。 我们建议向您的团队中添加一个新用户,并将该帐户与Codemagic的自动代码签名功能一起使用。
  • 注册设备 。 Codemagic将创建一个配置文件,其中包含已在您的Apple开发人员帐户中注册的所有设备。 在每次构建之前,Codemagic将检查是否已添加新设备,并在需要时更新配置文件。

设置自动代码签名

在Codemagic上设置自动代码签名非常容易。

  1. 转到您的“ 应用程序设置”
  2. 确保在构建设置中选择了发布模式。

3.在“ 发布”部分中,单击“ iOS代码签名”以展开此步骤。

4.选择自动作为代码签名方法。

5.输入您的Apple ID (Apple开发者门户用户名)和Apple开发者门户密码

6.然后选择供应配置文件类型

7.您还可以输入应用程序的捆绑包标识符 (可选)。 默认情况下,Codemagic从您的存储库中自动检测到它。

8.最后,单击“ 保存”以完成设置。 如果您的Apple开发人员帐户启用了两步验证或两步验证,则将要求您在弹出窗口中输入验证码,然后再次单击“ 保存”

而已。 现在,您将收到手头工作流程的已签名版本。 .ipa文件可在构建概述的“ 工件”部分中下载,如果已配置发布,也将通过电子邮件或Slack频道发送。 下一步,您可以配置发布到App Store Connect,以将签名的应用分发给测试人员或提交以供审核。

包起来

虽然您在开发过程中并不需要严格签名应用程序,但是当您计划通过App Store向公众发布应用程序时,代码签名和加入Apple Developer Program并没有什么可逃脱的。 我们相信,通过消除Mac进行代码签名的需求,可以使更多的人将其应用交付给潜在的最终用户。

最后,Codemagic的自动代码签名功能不仅适用于没有Mac的用户:它还可以通过自动化应用程序开发的另一个方面来减轻整个过程的痛苦。 但是,那些希望完全控制代码签名的人仍然可以继续使用我们的手动代码签名选项,并手动上传签名文件。