Tag: Cicd

如何在没有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时,您将需要使用分发证书以及适当的分发设置配置文件。 […]

大规模自动化移动交付

Fastlane最佳做法 我大规模使用Fastlane的旅程始于为一个团队开发的iOS应用程序构建全自动连续交付系统。 这发展成两个移动应用程序: 一个由多个团队开发的Android应用程序和一个iOS应用程序。 当然,这些团队采用了不同的工具集,各种测试环境以及不同的应用程序配置。 带着我的羽毛,我被要求在两个平台上的许多应用程序中执行相同的操作,这些应用程序具有许多开发团队,许多环境和许多外部资源。 我有提到“很多”吗? 要使数十个团队的数百名开发人员的工作自动化,从而为数十种移动应用程序做出贡献,是很困难的。 团队具有不同的开发方法,架构,工具,发布节奏和门控要求。 要实现这些折衷的交付目标,就需要删除手动流程,提高自动化可靠性,并使团队能够灵活地定义和支持各种流程。 首先,让我们奠定Fastlane基础,然后深入研究解决许多不同目标的实施细节。 您可以在GitHub上找到完整的代码示例集。 访问 Scaling iOS CI / CD的4课 ,了解此过程的其他方面,包括构建可 伸缩的iOS 执行环境以及我们在此过程中面临的三个挑战(环境不一致,容量有限和CI / CD不够灵活)。 Fastlane 101 —基础知识 Fastlane是一个非常活跃的开源项目,使用Ruby实现,目前由Google赞助。 项目维护者可以迅速响应社区提出的问题,并热烈欢迎外界的贡献。 Fastlane作为统一框架,可为iOS和Android应用程序定义自动化流程。 它甚至可以更好地将流程定义与使用这些流程的项目一起移入版本控制中。 “ Fastlane是为您的iOS和Android应用自动执行Beta部署和发布的最简单方法。 🚀它可以处理所有繁琐的任务,例如生成屏幕截图,处理代码签名以及发布您的应用程序。” — Fastlane文档 Fastlane术语 项目 :利用Fastlane的代码库。 Fastfile :包含使用Fastlane特定于域的语言(DSL)进行项目编码的文件。 action :在Fastfile(文档)中使用的单个可配置操作。 车道 :构成一个过程的动作的集合。 通道可以调用其他通道。 private_lane :只能由其他通道调用的通道,不能直接在命令行(文档)上调用。 function :一个封装逻辑的Ruby函数,可以在单个Fastfile中重用而无需更改通道。 plugin :一个Ruby宝石,封装了其他现成的未提供的动作。 开发期间: 构建 :使用调试构建设置 二进制 […]