Xcode Server:iOS空中下载(OTA)安装技巧

原始文章:原始文章已发布在我的个人博客XCBlog上,继续阅读 此处 以获得更好的图形。 要阅读有关iOS DevOps和iOS CI / CD的更多有趣文章,请 在此处 访问我的博客 别害怕,没有fu * king广告!

自从Apple发布带有内置Xcode Server的Xcode 9以来,为iOS项目设置“持续集成”的过程就变得非常简单。 在我以前关于Xcode Server的帖子中,我解释了使用Xcode 9和Xcode Server为iOS应用设置CI的详细过程。 为了了解代码签名,您应该观看WWDC 2017会话,有关Xcode和Xcode Server的签名新增功能。 Xcode Server具有一个选项,可以作为bot配置的一部分来生产可安装的产品 ,这意味着Xcode Server创建了一个存档版本和IPA以进行集成,可以在网络中的iOS设备中下载该版本。 在本文中,我们将介绍从Xcode Server在iOS设备上安装内部版本时的常见错误以及针对这些错误的解决方案。

常见错误

由于Apple尚未完成使用Xcode 9编写Xcode Server的文档(在撰写本文时),因此,如果我们不关注其他设备,则在iOS设备上获取已安装的版本有时会比较棘手且耗时。在Stack Overflow或Apple Developers论坛上的经验。 有一些技巧可用于轻松获得iOS设备上的构建。 大多数iOS团队成员的常见错误如下。

  • 使用IP地址访问无法下载内部版本的Xcode服务器
  • 缺少访问控制
  • 忘记启用Xcode服务器证书
  • 使用域名访问Xcode服务器
  • Bot安装过程中错误的代码签名选项
  • Bot安装过程中错误的存档选项

这是iOS团队成员在使用Xcode Server进行OTA安装时犯下的五个常见错误。 现在,我们将看到一些针对这些常见问题的快速解决方案。

Xcode服务器提示

为了避免上述常见错误,我们可以遵循一些提示和技巧。 在使用多台Mac Mini服务器设置Xcode Server时,我已经面对了所有这些问题。 希望这对其他人也有用。

使用规范主机名

作为普通用户,使用IP地址访问网络中的任何计算机都是很常见的。 如果您使用其他自托管的iOS持续集成服务器(如Jenkins,TeamCity等),则可能不是问题。但是,使用Xcode Server,我们仍然可以访问Xcode Bots页面,但无法将应用程序下载到iOS设备上。 您将收到一条错误消息,内容为“出于安全原因,您无法使用IP地址进行安装,请使用规范的主机名”。 这意味着我们必须找到Xcode服务器的规范主机名。

获得规范的主机名非常容易,如果您有权访问Xcode Server,则可以通过SSH进入Xcode Server计算机并在终端中键入hostname。

  $ ssh xcode_server_user @ xcodeserver_ip 
$主机名

或者,您可以在本地计算机终端中键入以下内容。

 $ curl -k https://您的XCODE_SERVER_IP:20343 / api / hostname 

上面的两个命令都将返回Xcode服务器的规范主机名。 为了下载构建,我们必须在iOS设备中键入此主机名。 例如,如果您的主机名是ABCXYZ,则必须在iOS设备中键入https:// abcxyz / xcode / bots。 理想情况下,您应该使服务器计算机具有来自DNS的良好主机名。 通常,本地计算机具有诸如XYZ的MacBook Pro.local之类的主机名,但这并不是一个好主意。 始终使用服务器规范名称。

安装Xcode服务器配置文件和证书

Xcode Server带有自己的SSL证书和配置文件,需要在iOS设备上安装它们。 可以将配置文件安装在iOS设备上的“配置文件”选项卡集成页面上。 单击“配置文件”选项卡将带您进入iOS设置,您可以按照说明安装配置文件。 您还可以通过访问iOS设备上的https:// xcode_server_hostname:20343 / api / profiles / ota.mobileconfig来访问Xcode Server API,以安装配置文件。 现在,我们已经安装了Xcode Server配置文件,但还不够。

我们大多数人都容易忘记的另一个非常重要的步骤是通过“证书”设置手动启用Xcode Server证书。 当我们点击“安装”按钮时,我们得到的烦人的错误是无法连接服务器。 苹果从iOS 10.3开始进行了此更改。 您可以在Apple支持页面上阅读有关此内容的更多信息。 总而言之,我们必须遵循以下步骤。

  1. 在iPhone上的Xcode服务器的bots页面上安装自签名证书。
  2. 转到iPhone的设置->常规->关于->证书信任设置
  3. 在“启用对根证书的完全信任”部分下找到服务器的自签名证书,然后将开关打开。
  4. 在Xcode Server上访问bots页面,单击install。

最好清除野生动物园缓存和Cookie,以防万一您再次遇到相同的错误。 有时Safari cookie会混淆Xcode Server。

设置权限

Xcode Server有一个选项可以设置谁应该访问服务器页面的权限。 默认情况下,网络中的每个人都可以访问bot页面并触发集成。 理想情况下,具有访问控制是一个好主意,这样只有具有证书的人才能访问机器人。 我们可以从Xcode Server权限设置中进行设置,并仅添加那些可以访问Xcode Server机器人的用户。

避免使用域名

也可以通过使用域名(例如https://abcxyz.london.my_company.com)访问Xcode Server,但使用域名,我们只能访问Xcode Server页面,但不能在iOS设备上安装build。 如上所述,我们只需要在URL中使用规范的主机名即可访问Xcode Server页面并下载构建。

代码签名

使用Xcode 9设置漫游器时,我们有一个单独的专用选项卡进行代码签名。 在bot配置中,我们可以将服务器添加到团队中,以便Xcode Server可以通过单击允许Xcode Server管理我的证书和配置文件来自动处理代码签名,但是有时您可能会遇到Archive Failed错误。 可能是因为Xcode Server没有足够的细节来配置对iOS应用签名的代码。 这里提到了一些技巧,我们需要关闭自动代码签名并使用预集成脚本中的Fastlane Sigh下载所有配置文件。

存档选项

在Bot设置过程中,Xcode Server在存档iOS应用时为我们提供了多个选项。 一些选项是

您可以使用三种不同的方案从方案中创建档案。 我们必须选择适合我们的Xcode Bot的选项。

  • 可安装的产品:这只会创建一个IPA文件
  • 可安装产品和变薄形式:这将创建多个IPA文件并占用大量磁盘空间
  • 使用自定义导出选项Plist:此选项需要我们自己的Plist文件

为提交构建选择“可安装的产品”是一个好主意,这是发布构建的另一个选择,以便节省服务器上的磁盘空间。

结论

目前,可以从Xcode Server在设备上构建iOS,但遵循一些技巧,窍门和其他用户的经验可以使之成为可能。 好吧,从自助式Xcode服务器上的设备上构建这些构建而不是使用第三方服务(例如Fabric,HockyApp,TestFairy等)来构建它们,感觉非常好。使用Xcode Server进行空中安装有什么经验? 好吧,太好了,不管它是什么,在评论中分享您的经验。

像XCBlog的 XCTEQ 发布的帖子一样 您可能还喜欢我们的一些服务,例如访客博客或Mobile DevOps(CI / CD)或测试自动化。 Github 搜索我们的 服务 ,开源项目, 或者在 Twitter Facebook Youtube LinkedIn 上关注我们 下载我们的 XCBlog iOS应用程序以离线阅读博客。

X CTEQ 一家专门从事基于Mobile DevOps,CI / CD,Mobile,AI / ML的测试自动化Checkout XCTEQ产品和服务的公司, 网址 http://www.xcteq.co.uk 或写信给我们info@xcteq.co。英国..