Tag: 连续部署

使用Xcode 8的FastLane的新Build设置来理解

我已经构建并负责管理我们iOS移动研究工作的构建管道。 我们运行3个不同的版本: Alpha , Beta ,将每个版本发布到不同的输出: HockeyApp,TestFlight,AppStore 这些释放点中的每一个均由对不同git分支的提交触发。 提交开发内容将自动将构建版本发送给Microsoft HockeyApp ,提交给master的提交将自动构建应用程序的两个版本,一个版本自动发送给Apple TestFlight ,同时准备一个稍有不同的构建版本,我们可以手动将其部署到Apple App Store 。 为了使事情变得更加有趣,我们的一些项目使用了两个独立的应用程序目标,这使我们共有六种不同的配置。 当我将构建服务器和项目过渡到Swift 3和Xcode 8时,构建配置不再能很好地工作。 苹果对新版本的Xcode中的代码签名和配置方式进行了一些更改,因此我不得不更新流程。 构建通道的核心是快速通道,我们使用它来自动执行该过程的大多数步骤。 手动签名 我最初的希望是,可以将项目文件设置为“自动签名”,然后当它到达CI服务器时,服务器将重写项目文件中的所有必要字段,以将其转换为手动签名。 这是可能的,但是如果您在项目中同时拥有框架和应用程序目标,则将变得相当困难-在某些软件中就是这种情况。 因此,我们坚持使用手动签名进行所有操作。 借助“手动签名”,我们需要手动管理我们的配置文件-可能会有些麻烦-但至少我们有一个很小的团队,因此目前可以管理。 我的目标之一是确保快速通道过程是非破坏性的,这意味着您可以在开发机器上运行它,并且不会破坏您的项目。 因此,高级流程是存储现有的构建设置,然后根据需要重新连接项目文件,进行构建,然后将项目还原到以前的状态。 捆绑ID和其他唯一字段 我们的三个构建路径中的每一个都有一组唯一的字段。 例如,每个应用程序的捆绑ID必须是唯一的。 另外,每个捆绑包ID都有其自己的唯一供应配置文件供应-连接到与该内部版本关联的Apple开发者帐户。 因此,对于发行版,我们使用主要的开发人员帐户,而在beta和alpha测试中,我们使用企业帐户进行签名。 现在,配置文件存储在以下构建设置中: PROVISIONING_PROFILE_SPECIFIER,因此使用xcodebuild,grep和awk的组合提取此值 #使用XcodeBuild | Grep | Awk | 提取提取配置文件名称的信息 EXISTING_PROFILE = sh(“ xcodebuild -project#{PROJECT_FILE_PATH} -scheme#{SCHEME} -showBuildSettings | grep PROVISIONING_PROFILE_SPECIFIER | sed […]

使用Fastlane的iOS连续部署🚀

如果您想在iOS应用程序中添加持续部署(CD),并且很难做到,那么您来对地方了。 我们缺少一篇文章,描述了使用Fastlane安全地执行CD的完整过程,以及一个使用连续集成(CI)服务(在本例中为Travis CI)的工作示例。 考虑到这一点,本指南将为您提供整个过程的分步指南。 现在,我们已经在公司部署了多个应用程序,我们发现手动将应用程序交付到App Store的过程是一个非常重复,令人沮丧且耗时的过程。 使用Fastlane,我们从几个小时的测试和部署缩短到了几分钟。 这是两部分系列的第二篇文章,其中包括: 自动化测试(引入Fastlane) 持续部署到TestFlight和App Store Notes是一个iOS应用程序,允许用户添加,删除和更改注释。 该项目用于说明如何使用Fastlane和Travis CI进行连续部署。 整个项目可在GitHub上找到,供您随意咨询和使用。 创建一个没有2FA的新Apple ID。 避免使用您自己的帐户,该帐户对您来说更安全,并且更容易将项目交付给客户或其他人。 Fastlane支持2FA,但是在管理会话令牌时会遇到问题( 不过应该进行测试! ); 将帐户添加到Apple Developer和iTunesConnect中的项目开发团队。 这对于自动创建必要的证书和配置文件,以及将应用程序上载到TestFlight或App Store是必不可少的; 空的 GitHub 私有存储库,用于存储项目中使用的加密证书和配置文件。 不要使用此存储库或将其更改为其他任何内容,脚本将自行管理存储库文件。 您将有多个可用命令,所有命令都在一个文件下,这将使您能够: 测试您的应用程序,最后进行漂亮的打印; 从计算机上手动部署应用程序,并通过从TestFlight获取当前版本来增加构建版本; 通过CI服务自动部署您的应用程序。 我们需要设置Xcode项目,以便与Fastlane和Travis CI脚本和谐地交互。 在撰写本文时,并且在尝试将Xcode与选择的自动管理签名一起使用之后,我们得出结论,正确实施持续部署的唯一可行方法是进行手动证书管理。 这些步骤是: 创建证书; 配置对新证书的Xcode签名; (可选)注册更多设备。 您将需要需求 🎒部分中提到的Apple帐户和GitHub存储库。 只需使用init命令并按照显示的步骤操作(系统将提示您存储库URL)。 快速通道匹配初始化 脚本结束时,您将在fastlane文件夹中创建一个Matchfile。 打开它,并将app_identifier和username更改为您的应用程序捆绑包标识符和所创建帐户的Apple ID。 现在,我们需要运行命令以将证书创建为所需的配置文件类型。 由于我们将要正确配置Xcode项目,因此我们将创建development和应用appstore类型。 运行开发脚本,将提示输入密码来加密和解密证书,并保存它,因为稍后我们将需要它。 快速通道比赛开发 继续执行appstore脚本: Fastlane Match应用程式商店 将创建所需的每个证书,请记住,如果需要添加更多检查步骤,它将为开发者帐户证书管理器中列出的所有设备创建证书。 […]