Tag: fastlane

与Bitrise for iOS本机应用程序的持续集成

这是我第一次使用CI。 我们需要一项能够帮助我们部署本地移动应用程序的服务(我负责iOS应用程序)。 从项目的配置到管道的创建,我们发现了一项伴随您的服务……Bitrise! 它使您可以免费试用该服务30天,之后可以订阅订阅。 有关更多信息,请访问价格页面。 组态 第一种配置非常直观。 有一个向导,可让您通过链接链接Bitbucket / Github帐户,并在存储库帐户中设置SSH密钥。 Bitrise检查您的iOS项目中是否已经存在迦太基文件或Fastfile,并允许您创建适当的步骤。 开始吧! 配置完成后,您可以访问仪表板。 在“ 构建 ”选项卡中,所有都是比特率构建。 有一个“部署到Bitrise”步骤,使您可以保留所有权限。 每个构建都将用颜色标识:如果一切顺利,则为绿色;如果进行了手动中止,则为黄色;如果失败,则为红色。 “ 工作流程 ”是Bitrise的核心。 它允许您使用可以从系统可用的多种选择中选择的步骤来创建管道。 如果不适合您,则始终可以选择标识外壳程序的“脚本”步骤。 此选项卡将打开一个页面,该页面上有一个部分可加载配置文件和证书(开发,临时,生产)。 另一个页面,您可以在其中插入要在脚本中使用的环境变量 ,以用于所有工作流程或仅针对某些工作流程。 触发器允许您在存储库的分支上执行操作(推,拉,合并)时配置工作流程的激活。 如果您正在使用Bitbucket,则必须转到“ Settings / Webhoocks ”并配置由Bitrise管理的各种操作。 bitrise.yml显示了通过在工作流程中插入各个步骤而生成的.yml文件。 请举个例子吗?

使用Fastlane生成CircleCI测试摘要

创建人: Jeremy Sherman 持续集成的核心是运行测试。 每当测试失败时,您都想知道为什么要尽快解决,以便您进行更正。 每当CI构建失败时,您都希望查看失败的测试及其失败方式。 CircleCI的“测试摘要”功能将此信息放在首位,因此您可以直接响应测试失败,而不会遇到任何麻烦。 诀窍是按预期方式为CircleCI提供测试信息。 构建日志可能很好启动。 您展开失败的步骤,滚动到页面的末尾,然后向上滚动直到遇到测试失败。 这还不错。 首先。 但是,对于一个足够大的项目,构建和测试日志会变得太长而无法在网页上就地查看。 然后,您会发现自己先下载了日志文件。 有时,失败的测试实际上并不是在文件末尾附近。 然后,您会四处寻找它。 在一个长期项目中的许多开发人员中,这段时间和精力加起来。 如果要构建iOS应用程序,并且将粘贴的示例配置复制并粘贴到CircleCI上,那么您应该会感到幸运。 但是,在以下情况下,您将希望更好地了解“测试摘要”功能正在寻找什么: 您的测试摘要会省略您想要的信息,例如棉绒输出。 测试摘要不适用于您,您想修复它。 您不是在使用Fastlane构建iOS应用,其他示例配置之一无法满足您的需求。 CircleCI的“收集测试元数据”文档指出了一件大事: 使用JUnit的XML格式报告测试。 store_test_results步骤参考引用了另一个: 您的测试报告应位于另一个“所有测试”目录的子目录中。 此子目录名称用于标识测试套件。 不过,还有一个要求是我从未在任何地方看到过文档: JUnit XML测试报告文件必须在字面上具有xml扩展名。 对于测试摘要,文件名的其余部分似乎无关紧要,但是如果您使用错误的路径扩展名,则不会看到任何测试摘要。 您将得到一个目录布局,例如: /用户/蒸馏器/项目/ └──快车道 └──test_output └──xctest └──junit.xml3目录,1个文件 这打勾了所有框: XML文件: junit.xml “测试套件”目录: xctest “所有测试套件”目录: test_output (Fastlane仅生成单个测试报告,因此,“在文件夹中报告”的嵌套看起来有点愚蠢。) 扫描提供了许多配置旋钮。 您可以通过运行fastlane action scan查看完整列表的表及其默认值。 我们需要安排三件事: 报告格式:JUnit 报告文件名:junit.xml 报告文件应写入的目录:fastlane / test_output […]

Xamarin的fastlane快照

部署到模拟器 生成应用程序时,需要将其部署到Simulator。 为此,我创建了bash脚本: 创建Xcode UI测试 将应用程序部署到Simulator后,我们可以接下来移动并创建FastlaneSnapshotXamarinTest项目,并选中“ Include UI Tests”。 下一步是通过命令fastlane snapshot init初始化fastlane快照 。 并取消注释要从中获取屏幕快照的设备(在Snapfile中 )。 现在,我们需要将SnapshotHelper.swift添加到FastlaneSnapshotXamarinTestUITests。 SnapshotHelper.swift文件需要进行一些小的修改,我们需要使用默认的构造函数将XCUIApplication的创建替换为XCUIApplication,并使用接受bundleIdentifier:“ com.organization.appname”的构造函数。 实际上,测试本身包含一种使用bundleIdentifier激活应用程序的方法:“ com.bohdanhrybach.FastlaneSnapshotXamarin” ,使用reverseText标识符向UITextField输入文本,使用01UserEntry图像名称创建快照,然后按下带有reverseButton标识符的UIButton并使用02Alert进行快照 图片名称。 就这些。 现在您应该可以在Xamarin上使用fastlane快照了

Fast将Fastlane与多个目标集成到一个iOS项目中🚀

现在,让我向您展示由3个不同目标组成的项目结构,以便我们可以通过快速通道进行相应的构建。 因此,Fastfile是一个定义所有“通道”的红宝石文件。 车道是您希望Fastlane运行的一组指令。 因此,我希望大家使用Atom IDE作为文本编辑器来完成与快速通道相关的操作,该操作快速且具有更智能的上下文感知自动完成功能,代码导航功能(如大纲视图),定义并查找所有引用,我们还可以悬停显示信息,诊断(错误和警告)和文档格式。 因此,现在在fastfile中创建通道之前,我们将为项目中定义的3个目标创建3个环境变量文件,这将帮助我们通过fastfile部署特定的目标app / ipa。 您可以使用Atom编辑器创建此空文件,并确保文件名应类似于此语法-“ .env。” 在环境变量中,我们将定义以下内容: SCHEME — —应用程序使用的确切方案或目标名称 BUNDLE IDENTIFIER — —特定目标或方案的标识符 PROVISION PROFLE NAME —提供配置文件的名称保存在本地Mac中,因此,在存档应用程序时,fastlane会尝试通过该名称查找配置文件。 名称将与Apple开发者帐户条款部分中显示的名称相同。 注意:-要查找存储在系统中的配置文件,路径应为:〜/ Library / MobileDevice / Provisioning Profiles。 默认情况下,〜/ Library文件夹在finder中是隐藏的,因此您必须取消隐藏它或使用Finder菜单中的Go-> Go to folder …输入路径,或使用Terminal并执行命令。 APP NAME — —项目中使用的目标/方案的名称。 因此,现在我们将在.env.App1文件中添加以下内容 SCHEME =“ App1” BUNDLE_IDENTIFIER =“ com.SandeepM.app1” PROVISION_NAME_DEV =“ Develop_App1” PROVISION_NAME_ADHOC =“ Adhoc_App1” PROVISION_NAME_APPSTORE =“ […]

Xcode机器人fast y fastlane🚀parte 3 + gitlab ci

完整的连续性gitlab中的Tens的安装程序gitlab的运行程序,是从proyecto decódigoabierto到corre nuestros的“工作”和manda los resultados的一个gitlab。 En siguiente link se encuentradocumentaciónde como instalar gitlabRunner https://docs.gitlab.com/runner/install/osx.html 在macOS上安装GitLab Runner | 亚搏体育app GitLab社区版,GitLab企业版,Omnibus GitLab和GitLab Runner的文档。 docs.gitlab.com 安装和配置gitlab-runner ejecutamos gitlab-runner注册参数注册商tus Runners Ponemos la url de nuestro servidor … 设置 , 设置-> CI / CD-> Runner设置 y 密码 3 (在安装过程中使用以下注册令牌)。 Seleccionamos Nuestro ejecutor en este caso shell 可配置的gitlab-runner和菜鸟服务提供商,特定的菜谱(阶段)的gitlab-ci nosotros realizar均未提交特定的书。 YML档案。 […]

使用Fastlane插件确保Swift版本

Apple于2015年12月将Swift开源,此后新版本的Swift频繁发布。 在瞬息万变的Swift开发环境中,必须确保用于构建iOS应用的Swift版本正确且符合预期。 我们将介绍如何使用我写的名为“ ensure-swift-version”的Fastlane插件自动检查Swift的版本。 为什么要检查Swift版本 根据Swift仓库上的Github版本,我们可以看到几乎每天都有新的DEVELOPMENT-SNAPSHOT发布。 我们可以轻松地切换到Swift的不同工具链,以尝试Swift语言的新功能。 在此处的Swift文档页面上有关于使用自定义工具链的信息。 迅捷版 我们可以通过从终端运行swift-version命令来检查版本,但是我们必须将此步骤插入到构建过程中。 Fastlane是用于iOS应用程序构建自动化的流行工具之一。 我认为,将插件添加到Fastlane以检查Swift版本是一个好主意。 让我们看看如何将插件添加到项目中。 为项目添加Fastlane支持 让我们创建一个新的Xcode项目作为单视图iOS应用程序。 我们称之为“演示” 我们可以通过在fastlane目录中创建Fastfile来为项目添加Fastlane支持。 $ mkdir fastlane $ touch fastlane / Fastfile 添加Fastlane插件 假设您已经在macOS上安装了fastlane,如果没有,请按照此处文档中的安装步骤进行操作。 我们可以通过运行添加快速通道插件 $ fastlane add_plugin sure_swift_version 这将为我们的项目设置Gemfile和Pluginfile并安装插件“ ensure-swift-version”。 使用插件 现在,我们可以使用我们新添加的插件了。 让我们在Fastfile中添加一条车道 泳道:迅捷 sure_swift_version(版本:“ Apple Swift版本3.1”) 结束 在这里,我们正在检查我们使用的Swift版本是3.1。 我们可以使用 $快速通道 如我们所见,将此检查插入我们的构建过程将多么容易。 最好将此检查用作before_all通道的一部分,以便我们可以在构建和测试应用程序之前执行此检查。 范例程式码 该插件可在Github仓库’fastlane_plugin_ensure_swift_version’上获得,并且有使用此插件’demo_ensure_swift_version_plaugin’的演示仓库。 希望您觉得这个插件有用。 像XCBlog的 XCTEQ 发布的帖子一样 ? 您可能还喜欢我们的一些服务,例如访客博客或Mobile […]

Xcode bot和y fastlane和parte 2

平面设计作品集… 巴拉圭机场航站楼快线弹出: [sudo] gem install fastlane -NV 快速通道安装向导和快速通道初始化。 请亲自为我配置红宝石。 全新的Podfile文件。 1.- Nos aseguramos tener instalada la linea de comandos de xcode。 不能正确地引用xcode ejecutamos中的命令,请按line + 位置->命令行工具 x selecionamos nuestro xcode。 2.- Al Terminar encontraremos unablame llamada“ fastlane” TestFlight是入门级的入门级版本。 档案文件格式的档案可在档案库中显示: 车道:beta do build_app(方案:“ gitlab-ci-xcode-bot”) upload_to_testflight 结束 墨西哥的圣地。 Fastlane tiene muchas acciones que nos ayudaran a faciltartar tareas […]

带有Fastlane的简单iOS版本

在准备发布iOS应用程序时,您将面临许多繁琐的重复性过程,例如处理证书,配置文件,上传翻译,使用应用程序支持的所有语言进行屏幕截图等。 下面我将向您介绍名为Fastlane的工具,该工具将为您处理大部分任务。 工具概述 为了构建,签名和发布应用程序,我们将使用以下工具: 在Apple Developer Portal和iTunes Connect中创建新应用的产品 匹配以创建证书和配置文件 用于构建和归档iOS应用的健身房 快照和框架,用于在所有支持的语言上截屏 用于检查元数据和发布应用程序的precheck & deviler 安装 要使用fastlane,需要先安装XCode和自制软件。 $ xcode-select –install#确保最新的XCode命令行工具 $ brew cask安装fastlane 建议将Gemfile用于Fastlane依赖项。 同样,它将加快fastlane。 $ sudo gem install bundle 在项目的根目录中创建具有以下内容的Gemfile: source “https://rubygems.org” gem “fastlane” 然后运行: $ 捆绑包更新 将Gemfile和Gemfile.lock都添加到版本控制中。 导航到项目的目录并运行。 $ bundle exec fastlane init -u Fastlane将生成一个基本配置,并从iTunes Connect获取现有配置(如果有)。 结果将创建包含Appfile和Fastfile的 ./fastlane目录。 Appfile可能看起来像这样。 app_identifier “ com.datarockets.CoolApp” apple_id “您的苹果ID” […]

使用Fastlane和Ansible进行iOS连续部署-第1部分

注意:本文已发布在Moonpig Engineering官方博客上。 在这里阅读 在担任Photobox Group的前一职务时,我参与了为iOS部署设置持续集成服务器并为他们配置Ansible的iOS应用程序DevOps实践。 我们使用带有TeamCity的mac Mini服务器的自托管CI解决方案。 在这两部分的文章中,我们将看到我们如何结合Fastlane和Ansible实现iOS应用程序的持续交付。 持续交付(CD)和DevOps实践加快了向最终用户交付新功能的速度。 iOS应用程序开发的快节奏世界可能会受益于DevOps实践,从而可以快速,轻松地将应用程序发布到生产环境中。 在iOS世界中,发布很困难。 它涉及复杂的步骤,例如代码签名以及处理Apple开发和发行证书。 这可能是一个容易出错且耗时的过程。 通过从Xcode本地构建,测试和存档iOS应用程序来完成手动发布。 然后,已存档的.ipa文件需要上传到iTunes Connect。 理想情况下,我们希望使用持续集成(CI)来自动执行此过程,该过程无需人工干预即可将每次提交或合并推送到Apple Beta测试服务TestFlight的主分支。 在本文中,我们将说明如何使用构建自动化工具Fastlane实现持续部署。 Fastlane提供CD最常见的业务收益,但也为其他工程团队带来收益,包括: 消除针对DevOps的DIY,并专注于构建本地iOS功能。 每次合并后,新版本都会自动上载到iTunes Connect。 自动执行重复的升级或设置新CI服务器计算机的任务。 通过源代码管理所有基础结构。 开发人员计算机和CI服务器具有相同的配置。 挑战性 以前,发布我们的应用是一项使命。 部署是一天的马拉松比赛。 我们遵循了本地计算机上传统的,耗时的手动发布方式。 从Xcode构建,测试,存档和上传iOS应用程序非常耗时。 发布中最痛苦的部分涉及下载与分发证书关联的正确的配置文件。 如果我们在上载到iTunes Connect或在生产中的版本中发现问题,则重复此过程将更加痛苦。 为了简化发布过程,我们必须克服以下挑战: 自动化分析,构建,测试,存档并将iOS应用程序上传到iTunes Connect的过程 设置持续集成服务器以使用自动生成 在需要时自动执行重置CI服务器设置的过程(例如,当Xcode版本更改或任何Apple API更改时) 从代码或称为代码的基础架构驱动iOS CI基础架构 确保iOS开发人员计算机和CI服务器上的软件配置相同。 说不可以在我的机器上使用 我们结合使用Fastlane,TeamCity和Ansible工具解决了这些问题。 这些代码段仅供参考,让我们开始吧。 使用Fastlane构建自动化 诸如xcodebuild之类的Apple命令行开发人员工具是一种强大的方法,可用来编写任何我们想自动化的脚本。 但是,我们正在编写的命令可能非常冗长和繁琐。 Fastlane是Apple命令行工具的包装,使构建自动化更加容易。 有一系列Fastlane工具可用于自动执行各种iOS开发任务,例如,“扫描”用于运行测试,“健身房”用于构建应用程序,“飞行员”用于将应用程序上传到TestFlight。 自动化Swift版本检查 自动构建过程的第一步是确保使用正确的软件版本(例如Swift和Ruby)以干净的状态启动CI构建。 Fastlane提供一个before_all步骤,该步骤在所有其他通道之前运行。 您可以阅读有关高级Fastlane的更多信息,以配置此步骤。 […]

使用Swift的Fastlane | 传递参数| CI

这篇文章假定您已经熟悉Fastlane。 在这里,您可以找到如何将参数传递到车道。 我的场景:在我的CI设置中,我将同时使用Jenkins和Fastlane。 因此,我需要将参数从命令行发送到我的车道。 经过一番努力之后,我终于知道了如何将参数从命令行传递给Fastlane。 缺少了什么?。。。文档。 我从以下几点开始调查: https://github.com/fastlane/fastlane/issues/11747 https://github.com/fastlane/fastlane/issues/11370 https://github.com/fastlane/fastlane/pull/11401 先决条件 : 1.在MacOS上安装fastlane 2.使用以下命令进行设置: 捆绑程序执行器fastlane init swift 此时,fastlane正在项目文件夹中创建一些默认文件。 (fastlane文件夹,Gemfile和Gemfile.lock) 从这一刻起,我们需要集中精力扩展Fastfile.swift 。 为此,我更喜欢使用位于以下位置的FastlaneSwiftRunner.xcodeproj : ./fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj 在分析Fastlane的快速源文件之后,我尝试查看如何在不带&参数的情况下从命令行调用车道。 我在Fastfile.swift中定义了一些示例函数(通道): (我已决定根据fastlane swift代码为其中一些格式提供该格式)。 Lane️车道名称匹配不区分大小写。 非常好 ! 乍一看,我发现可以使用两种格式调用firstLane : bundle exec fastlane firstLane或将bundle exec fastlane first 下一步将是看如何将参数传递给车道。 在不涉及复杂的Fastfile的情况下,我只想发送样本[key:value]格式。 当然,对于secondLane,我们不能使用以下命令: bundle exec fastlane secondLane 因此,在深入研究之后,我设法找出了正确的格式,原因以及如何传递参数。 从前面的控制台消息可以看出,只有3种方法被检测为通道。 //不带参数的简单车道,后缀为“车道”。 func firstLane()//带参数的泳道,作为可选参数,后缀为“ lanewithoptions:” func thirdLane(withOptions […]