Tag: Ci

为iOS设置Fastlane MATCH

在本文中,我将向您展示如何创建快速通道匹配以自动化构建和发布移动应用程序的过程。 注意 : 如果要添加现有证书以匹配git repo,请转到步骤9 什么是快车道? Fastlane是旨在简化Android和iOS部署的开源平台。 fastlane使您可以自动化开发和发布工作流程的各个方面。 自动截图 -自动为应用商店生成本地化的截图。 Beta部署 -轻松为测试人员分发Beta版本。 App Store部署 -在几秒钟内将新版本发布到App Store。 代码签名 -可靠,一致地对您的应用程序进行代码签名,不再麻烦。 —设置快速通道匹配: 什么是快车道比赛? iOS代码签名的新方法:在整个开发团队中共享一个代码签名标识,以简化代码签名设置并防止代码签名问题。 match创建所有必需的证书和配置文件,并将它们存储在单独的git存储库中。 每个有权访问该存储库的团队成员都可以使用这些凭据进行代码签名。 匹配还会自动修复损坏和过期的凭据。 这是在团队之间共享签名凭证的最简单方法。 在设置Fastlane匹配之前,让我们先在本地计算机上安装Fastlane, 须藤宝石安装fastlane 第1步 : 创建一个git仓库。 创建一个新的私有Git存储库(例如,在bitbucket.org/xxx中的特定项目中),您可以将其命名为 certificate 。 注意 :确保将存储库设置为 私有 步骤2: Apple开发人员帐户 创建一个新的共享Apple开发人员帐户(例如projectname@company.com),此帐户将在您的团队之间共享。 如果您已经拥有一个,请忽略此步骤。 您还可以在匹配文件中添加Apple帐户的用户名和密码字段(您将了解匹配文件)。 步骤3 : 设置SSH密钥 为您的git帐户设置ssh密钥,以克隆将由fastlane匹配文件使用的存储库。 这很重要,因为匹配需要用户名和密码才能访问git repo。 没有身份验证,构建将失败。 使用SSH,您可以对将存储证书和配置文件的存储库进行身份验证。 步骤4: 启动快速通道 为您的项目文件夹启动fastlane(其中包含.xcworkspace或.xcodeproj) 快速通道初始化 project1 $:快速通道初始化 […]

使用Slather将代码覆盖范围添加到Zendesk的iOS SDK版本中

测试覆盖范围的扩大是Zendesk Mobile SDK团队的一项持续任务。 有什么比在每次拉动请求中都提示的更好的方法来帮助实现这一点。 让我们知道我们是否正在朝着目标迈进。 早在2014年,我们的iOS SDK就开始使用Xcode 5进行工作。那时,它是一个静态库。 从那以后,它经历了许多更改和Xcode版本。 如今,这是一个由等量的Swift和Objective C编写的动态框架。Xcode项目会迅速收集灰尘,而将新工具集成到旧项目中的工作很少能顺利进行。 我们最近将危险集成到我们的项目中。 危险使代码检查的某些方面自动化。 我们一直将它用于简单的任务,例如警告我们代码中遗留的待办事项或格式错误的提交消息。 设置既简单又易于使用,它具有大量可用的插件。 Slather生成测试覆盖率报告,并旨在加入CI。 还有一个危险插件。 将其添加到我们的项目看起来很简单。 gem install danger-slather 在我们要报告测试覆盖率的方案的危险文件配置slather上添加一行。 添加另一行以显示输出。 推送至GitHub,等待Travis完成。 错误:无法加载覆盖率。 找不到覆盖率数据。 总覆盖率:NaN% 无论如何,这似乎太不可思议了。 错误消息很清楚。 我们要么没有生成代码覆盖率数据,要么Slather无法找到它。 首先,我们需要检查是否正在生成覆盖率数据。 这是在要覆盖数据的方案的测试设置中完成的。 另外,可以将enableCodeCoverage传递给xcodebuild。 在这一点上,我们假设coverage数据与构建输出位于同一位置。 我们正在将OBJROOT传递给xcodebuild,并且可以在那里看到构建输出。 我们已经将Slather配置为在同一目录中查找二进制文件以对其进行覆盖。 我们仍然No coverage directory found从Slather No coverage directory found 。 我们使用bundle show slather slather查看了Slather的代码,发现它正在运行: build_command =“ xcodebuild#{projectOrWorkspaceArgument}#{schemeArgument} -showBuildSettings 此命令获取方案中包含的所有信息。 OBJROOT不会选择将OBJROOT或任何其他环境变量传递给xcodebuild。 […]

免费持续集成开源Swift软件包

苹果已经发布了自己的软件包管理器,称为“ Swift Package Manager”,以共享和分发Swift软件包。 最好在我们的开源Swift软件包中添加免费的持续集成,以确保代码更改不会破坏任何内容。 幸运的是,TravisCI为您在Github上的所有开源项目提供免费服务。 在这篇简短的文章中,我们将了解如何为Github上的演示包Greeter添加TravisCI支持。 启用TravisCI 如果您已经拥有GitHub帐户和Swift Package,这将很方便,然后我们可以使用Github凭据注册TravisCI服务。 TravisCI将指导您有关为项目启用CI服务的过程。 这是三步过程,如下图所示 基本上,这很简单,我们需要同步github帐户,该帐户将显示我们的所有存储库。 那么您需要在项目的根目录中添加.travis.yml文件。 并使用git push推送构建 添加TravisCI配置 让我们将.travis.yml添加到上面的Greeter示例包中,内容如下。 操作系统: -osx 语言:通用 sudo:必填 dist:可信赖 osx_image:xcode8 脚本: -快速构建 -快速测试 通知: 电子邮件: on_success:从不 on_failure:更改 Travis具有不同的构建环境,我们必须选择安装了所有必要软件组件的最新xcode 8.3映像。 这意味着我们已经在Travis服务器上快速安装了,然后我们需要运行脚本来构建我们的程序包并测试我们的程序包。 我们已经在上面的.travis.yml文件中完成了此操作。 现在,我们增加了对TravisCI的支持,我们需要在T​​ravis上启用项目,并且它将在每次提交或新的Pull请求之后“构建”和“测试”我们的项目。 我们的Greeter示例的Travis项目示例可以在这里找到 有太多选项可用于自定义.travis.yml文件。 您可以在此处阅读有关配置选项的更多信息 如此简单,希望您也将TravisCI服务添加到您的Swift软件包中。 像XCBlog的 XCTEQ 发布的帖子一样 ? 您可能还喜欢我们的一些服务,例如访客博客或Mobile DevOps(CI / CD)或测试自动化。 在 Github 上 搜索我们的 服务 ,开源项目, 或者在 […]

在RedMart发售iOS

每个人都喜欢运输软件! 有什么比在AppStore上发布代码更好呢? 在本博文中,我们将简要介绍如何改进iOS应用的构建和发布过程。 工具和基础设施: TL; DR: TravisCI + Fastlane 过去,我们的iOS应用发布过程涉及通过Xcode / Application-loader上传软件包。 我们以前有shell脚本来自动执行此操作,但是由于一段时间未使用/维护,因此它们不适用于最新版本的Xcode。 因此,我们可以选择理解和修复这些脚本,但是我们意识到,最好投资以下内容: 1)易于理解和使用。 2)易于构建。 3)从长远来看,每当Xcode和iTC进行更改时,维护都很容易。 Fastlane是我们要考虑的问题,因为它似乎可以选中复选框,而我们的开发人员也可以根据以前的经验对它说好话。 通过在Fastlane中使用Match获得的另一个好处是,我们不再需要为每个开发人员管理多个证书和配置文件,因为单个副本已加密并存储在其自己的存储库中,从而易于维护开发人员端口且没有依赖性在开发人员/计算机上进行发布。 至于硬件,Travis与GitHub集成良好,我们将其用于RedMart的其他项目,因此我们决定使用它。 处理: TL; DR:发布计划。 一点点纪律会让每个人都开心。 有时候我们一周内要发布多个版本,如果我们计划好发布并更好地管理期望,回想起来可以避免。 因此,我们引入了发布时间表。 这使我们的发布周期可预测,从而使我们的质量检查人员可以相应地计划其日历,还可以使其他利益相关者对何时可以启用某个特定功能有清晰的了解。 因此,我们的发布时间表如下所示: 1)我们在每个星期五将RC进行质量检查,并将其狗食化 。 2)团队在周末使用此RC进行购物。 这有助于我们及早获得反馈/关注。 3)我们的质量检查人员会在星期二早上批准我们,并进行自动回归测试并根据更改日志进行手动检查。 4)如果一切顺利,我们将发布所有更改。 否则,我们将还原错误的提交并继续进行发布。 由于iOS App版本在批准/上线时间(通常为12小时)和构建版本在用户设备上的分散性方面相对昂贵,因此,我们尝试为母版上的代码留出足够的时间以供质量检查和测试使用内部测试小组上线之前。 总而言之,这种设置节省了我们无数小时的时间和精力。 现在,我们只需要触发构建并接一位同事玩桌上足球🙂 摘要: 最初发布在geeks.redmart.com

使用使用Cocoapods的iOS项目设置GitLab CI

我们都为应用程序编写测试,并将其保留在版本控制的系统(如GitLab或GitHub)中。 但是,我们如何配置GitLab为我们运行单元和UI测试? 我找不到很多文档来解释如何在GitLab上为iOS设置持续集成,因此我正在写这篇文章。 Victor Peschenkov在他的文章中解释了如何在Fastlane中使用GitLab CI。 我的文章重点介绍如何自己运行所有内容。 要求 为了为iOS设置GitLab Runner,我们需要以下工具: 苹果电脑 Xcode 10 GitLab.com帐户(或一个自托管帐户) 家酿 CocoaPods(使用自制软件: brew install cocoapods ) 请先安装这些工具,然后再继续。 配置Xcode 确保从Mac App Store下载Xcode。 安装完成后,打开它并创建一个项目以确保它已完全安装并正在运行。 iOS专案 我创建了一个示例项目,以帮助您更快地入门。 随意分叉它或使用您自己的项目。 请使用以下方法验证您的安装: git checkout git@gitlab.com:skofgar/ios-ci-sample.git 切换到项目文件夹并运行pod install 在计算机上运行以下命令,以验证您可以成功构建并运行测试-这意味着没有“失败”或其他错误消息 xcodebuild测试 -workspace“ CI Sample.xcworkspace” \ -方案“ CI示例”-目标“平台= iOS模拟器,名称= iPhone XR,OS = 12.0” \ | xcpretty -s 安装GitLab Runner iOS项目需要特殊的GitLab […]

如何在Xcode 9中使用Xcode服务器

由于Xcode服务器已内置到Xcode 9中,因此我尝试使用Xcode服务器来替换我现在用于CI的fastlane。 Xcode和Xcode服务器签名的新功能– WWDC 2017 –视频– Apple Developer 了解Xcode对代码签名的支持的新进展,包括更强大的分发签名,更好的开发者。developer.apple.com 设置Xcode服务器 首先下载Xcode 9,您将在Xcode Preferences中找到Xcode服务器。 单击右上角的关闭/打开按钮以打开Xcode服务器。 Xcode将询问您要使用哪个帐户来创建服务器。 建议创建一个新的。 然后Xcode将为您创建服务器,您只需要登录帐户即可。 服务器部分已完成,非常容易。 设置客户 现在您有了Xcode服务器,那么如何在其上配置CI? 创建一个客户帐户。 仍在“ Xcode首选项”中,切换到“帐户”选项卡,单击左下角的小加号图标,然后选择“ Xcode服务器”。 在弹出列表中选择您的服务器并登录。每个团队成员都可以在自己的Mac上创建一个客户帐户,如果他不想编辑服务器,则可以使用来宾帐户登录。 创建机器人 最后,我们可以通过单击Product-> Create Bot来创建运行CI的机器人。 Xcode将要求您配置Bot。 如果选择在构建配置上进行测试,构建参数和触发器,则紧随其后的是信息,git repo,构建配置,构建时间表,签名,测试设备。 您可以稍后编辑机器人。 您可以在Xcode报告导航器中检查该漫游器。 右键单击Bot,可以创建/编辑/删除Bot。 您可以在网页上查看该漫游器。 您可以触发积分。 单击集成将在右侧显示一个报告页面,该页面告诉您集成的状态,测试数据和日志。 苹果有一个旧的Xcode服务器行会,但是如果遇到麻烦,它会提供一些有用的信息。 Xcode服务器和持续集成指南:关于Xcode中的持续集成 提供有关使用Xcode Server和实施持续集成工作流的指南和示例。 developer.apple.com 分配 如果您以前使用过其他CI工具,例如Jenkins,fastlane,您会发现Xcode服务器没有那么强大。 如果将其用于构建项目和测试也可以,但是分发效果不佳。 OTA OTA用于让质量检查测试应用程序ipa或安装Inhouse ipa。 Xcode服务器有一个内置网页,其中安装了OTA。 但是,您只能使用“ server.local”主机名安装ipa,这会使OTA仅适用于LAN网络。 扳机 另一种方法是使用触发器。 集成成功后,将ipa上载到HockeyApp等测试平台进行测试,或上载到testflight以准备提交。 […]