Tag: Xcode服务器

iOS与Xcode Server持续集成的入门指南

Apple在Xcode Server以及与OSX Server(应用程序)和Xcode Server(服务器应用程序内的Xcode)的持续集成方面拥有非常全面的文档。 如果指南中记录了所有内容,您可能想知道这篇文章的意义是什么? 但是,Apple指南仍比macOS Server读作OSX Server,但Apple发布了新的macOS Server(5.2),并对Automated Xcode Builds进行了一些改进。 无论如何,这都是一个小教程,旨在设置Mac以使其作为具有Xcode Service的macOS服务器运行,以及为具有Xcode 8的macOS服务器设置基本Xcode Bot以执行持续集成。 我们将介绍macOS Server的基础知识和设置 配置Xcode以使用macOS Server的Xcode服务 设置开发Xcode以在macOS服务器上使用Xcode Server 使用Github上的XCFit Swift Package示例创建Xcode机器人 运行Bot集成并分析结果 要求 为了使用macOS Server和Xcode Service设置持续集成,我们需要 安装了macOS Server 5.2应用程序的Mac或Mac Mini。 从App Store下载 服务器上安装了Xcode 8。 从App Store下载 确保已安装Swift 3 Github上托管的Xcode Project存储库(本教程可选) 我们可以从中触发Xcode机器人的另一台开发Mac(本教程为可选) macOS Server 5.2的新功能 Apple已将其旧的OSX Server重命名为macOS Server,它具有许多新功能,例如配置文件管理器,缓存服务器,NFS,Xsan 5等,但让我们关注Xcode Service的新功能。 macOS Server不支持旧的Xcode版本。 支持Xcode […]

使用Xcode Server进行iOS持续集成的利与弊

持续集成aka CI是iOS开发过程中不可或缺的一部分,当在应用程序开发过程中出现问题时,它可以提供早期反馈。 在敏捷应用程序开发中,生产可运行的应用程序不仅在编写良好的代码,而且还建立了可连续交付的基础架构。 持续集成和自动化构建的过程可以帮助实现持续交付。 市场上有各种持续集成工具可供iOS团队使用。 CI服务器解决方案可以是自托管的或云的。 您可以在此处获得有关CI服务器的完整列表以及建议。 在iOS开发中,选择自托管CI服务器时,我们几乎没有挑战性的选择 Xcode服务器 詹金斯 团队城市 如果您正在寻找云解决方案,那么有一些有希望的服务,例如 TravisCI CircleCI BuddyBuild 比特升 温室CI 有多种工具,因此挑战在于如何选择和评估为什么一个要比另一个更好。 Cloud CI服务器易于设置,可以由其他公司进行管理,并且只要配置正确,它们就可以正常工作。 另一件事是在使用云CI解决方案时,我们不需要有人来管理服务器。 但是,在使用基于云的解决方案时,您必须注意各种事项,例如隐私,成本,易用性,可用性和平台支持。 选择自托管vs Cloud CI有其自身的优缺点,您应该考虑最适合您的团队的问题。 对于自托管CI,Xcode Server似乎是简单的选择,因为它由Apple管理并与Xcode深度集成。 在本文中,让我们看看使用Xcode Server进行iOS持续集成的优缺点。 Xcode服务器简介 Xcode Server是Apple开发的一个持续集成平台,用于分析,构建和测试以及存档iOS和macOS应用程序。 iOS开发中最痛苦的部分之一是证书和配置文件配置文件。 当我们想在CI服务器上设置证书和配置文件时,变得更加忙碌。 最新版本的Xcode Server解决了证书和配置文件方面的许多问题。 Xcode Server与Xcode紧密结合,因此设置和使用Xcode Sever进行持续集成变得非常轻松。 苹果在CI的Xcode Server设置上有非常全面的文档,但是我写了简短的教程来设置最新的macOS Server来运行Xcode机器人,该教程也在DZone上发布。 您可以参考这些指南来开始使用Xcode Server。 Xcode Server具有以下功能 免费或廉价解决方案 自托管并与Xcode深度集成 设备测试 无线(OTA)安装 由苹果公司管理和维护 Xcode Server具有所有这些功能,但是有些人为使Xcode Server正常工作付出了很多努力。 让我们看看使用Xcode […]

带有Xcode 10的Xcode服务器

Xcode Server是几年前由Apple推出的一项持续集成服务。 在上一篇有关Xcode Server和Xcode 9的帖子中,我们介绍了WWDC 2017上有关“Xcode和Xcode Server签名的新增功能”的会议中宣布的大部分主要增强功能,自此之后,使用Xcode Server变得如此容易且容易使用无痛。 Xcode 9版本中宣布的主要增强功能是 内置Xcode服务器 服务器内的代码签名和设备配置以及自动代码签名 Xcode服务器上运行的无头测试 所有这些功能使Xcode Server成为iOS应用程序连续集成的轻松选择。 但是,在2018年初发生了一些改变游戏规则的事情。苹果收购了另一项持续集成服务BuddyBuild。 这是Xcode Server及其持续开发中的主要工作。 这可能是原因,WWDC2018在持续集成方面是如此令人兴奋。 苹果没有对持续集成和Xcode Server一言不发。 这是非常可疑的事情。 好吧,这是一个完全不同的主题,但是作为本文的一部分,我们将介绍在Xcode 10中使用Xcode Server的外观以及是否有任何更改。 Xcode 10:Xcode服务器 Xcode 10具有深色模式,因此很有趣的是从头开始设置Xcode Server的外观。 我们将在Xcode 10中创建一个包含单元和UI测试目标的空白应用程序,我们将其称为Xcode10-XcodeServer。 启用Xcode服务器 和以前一样,我们可以在Xcode Preference中看到“ Servers&Bots”标签。 我们可以使用本地Mac或其他Mac设置Xcode Server。 我们需要选择Mac和Integration用户。 请参阅下面的GIF,以了解在Xcode 10中启用Xcode Server的过程。 启用Xcode Server之后,我们将收到macOS通知,告知Xcode Server已准备就绪,并且我们将在顶部显示一个图标,其状态为Xcode Server,如下所示。 现在,我们已经设置了等待集成的Xcode Server。 添加Xcode服务器 一旦启用了Xcode服务器,则需要将其添加到本地Xcode中,以便我们可以创建机器人。 和往常一样,可以通过添加新的Xcode Server从Xcode Preference-> Account部分完成。 我们必须提供Xcode […]

如何在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以准备提交。 […]

Xcode Server:启用代码诊断工具

原始文章:原始文章已发布在我的个人博客XCBlog上,继续阅读 此处 以获得更好的图形。 要阅读有关iOS DevOps和iOS CI / CD的更多有趣文章,请 在此处 访问我的博客 。 Xcode提供了一些很酷的工具,可以用来检测一些手动或功能自动测试难以捕获的疯狂错误。 除非它们对应用程序产生影响,否则很难找到与内存和线程相关的问题。 在我以前的有关在iOS CI上激活代码诊断工具的文章中,我们看到了如何在CI服务器上启用Apple的代码诊断工具,例如TravisCI或使用xcodebuild命令行工具的任何其他第三方CI服务器。 在这篇简短的文章中,我们如何使用Apple自己的Continuous Integration服务器(也称为Xcode Server)启用这些工具。 回顾一下代码诊断工具,Xcode具有四种不同类型的运行时工具,也称为代码诊断工具来查找问题。 这些工具是 地址消毒剂 Address Sanitizer(又名ASan)报告了与内存相关的问题,例如内存损坏和其他与内存相关的安全漏洞问题。 您可以在此处阅读有关Address Sanitizer的更多信息。 线程消毒剂 Thread Sanitizer aka TSan可检测数据争用问题。 它还检测其他与线程相关的问题,例如线程泄漏。 在Apple的官方文档中有关于Thread Sanitizer的详细文档。 主线程检查器 主线程检查器是随Xcode 9一起推出的新工具,该工具可检测到Apple框架(如UIKit,AppKit等)的无效使用,这些框架本应在主线程中使用,但意外地在后台线程中使用。 未定义的行为消毒剂 未定义行为Sanitizer aka UBSan在运行时检测代码中未定义的行为。 这些行为包括除以零,从未对齐的指针加载内存或取消引用空指针。 您可以在此处阅读有关UBSan的更多信息。 Apple在代码诊断的官方文档页面上提供了所有这些工具的简要文档。 我们可以通过“编辑方案”->“运行/测试”->“诊断”从Xcode方案设置中启用所有这些工具 您可以看到所有这些工具都可以通过使用复选框来激活。 需要注意的一件事是,您不能同时启用线程清理程序和地址清理程序。 从Xcode 9开始,Xcode Server内置了Xcode应用程序,因此无需获取macOS服务器即可启动Xcode Server。 我们可以直接从Xcode启动服务器并开始创建Bot。 在Xcode 9中,创建Bot时,我们有一个名为Arguments的选项卡,并且在arguments中,我们可以找到该部分以添加其他参数Arguments传递给xcodebuild 我们可以使用该部分来启用代码诊断工具。 我们可以传递不同的参数来启用地址清除器,线程清除器或未定义的行为清除器。 […]