如何从Azure DevOps获取构建Mac的UUID

72次阅读
没有评论

问题描述

正在尝试设置Azure DevOps流水线来构建macOS应用程序。他认为已经完成了所有必要的步骤,并且目前运行得如他所预期。
然而,他现在遇到了一个问题,为了对产品进行签名,构建机器设备必须包含在我们的配置文件中,这意味着我们必须将其UUID添加到Apple Developer的设备列表中。
用户想知道如何让流水线使用这个配置文件。他想到的解决方案可能包括以下几种:
– 有一种方法可以找到可能运行流水线的每台Mac的UUID
– 有一种方法可以限制流水线始终使用相同UUID的相同Mac
– 有一种方法可以指定/伪造构建机器的UUID
– 有一种在构建时使用API或其他方式将构建机器注册到Apple Developer的方法
– Azure DevOps有一种特殊的方式来绕过构建过程的这一部分,同时允许签名
– Apple有一些我不知道的特殊方式,允许任意构建机器在事先不知道其UUID的情况下进行签名

用户已经尝试了上述所有方法,但没有找到明确的信息。他想知道在Azure DevOps中使用特定的配置文件集签名Xcode项目流水线的最佳实践是什么。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据Azure DevOps文档中的这些步骤,您应该能够在您控制的Mac上生成p12和配置文件,然后使用”Install an Apple certificate/provisioning profile”任务将证书安装到用于构建的Mac代理上。代理不需要UUID。这里有一个可能有用的指南(它针对的是iOS,而不是macOS,但概念是相同的)。
我在一个项目中的设置方式是通过Microsoft的AppCenter,它具有自动处理配置文件的工具。
以下是解决方案的步骤:
1. 在您控制的Mac上生成p12和配置文件。
2. 在Azure DevOps的流水线构建步骤中使用”Install an Apple certificate/provisioning profile”任务将证书安装到Mac代理上。
3. 确保p12密钥和配置文件都在Azure的”Secure files”部分中,并在流水线的构建步骤中引用它们。
请注意,这种方法不需要UUID,因为在安装p12密钥和配置文件时,Mac代理会将其UUID签名到配置文件中。

方案2

如果您的配置文件是在Apple的服务器上生成的,并且与其内容密切相关,那么在构建时无法动态修改配置文件。在这种情况下,您需要在每次想要为新机器进行配置时,更新配置文件并重新下载它。
以下是解决方案的步骤:
1. 在Apple的开发者门户上更新配置文件,将构建机器的UUID添加到配置文件中。
2. 下载更新后的配置文件,并将其添加到Azure的”Secure files”部分。
3. 在流水线的构建步骤中使用”Install an Apple certificate/provisioning profile”任务将配置文件安装到Mac代理上。
请注意,这种方法需要手动更新配置文件,并确保在每次构建新机器时都进行相应的更新。

方案3

如果您使用的是Azure DevOps的AppCenter,它具有自动处理配置文件的工具,可以简化配置文件的管理和更新过程。您可以参考AppCenter的文档来了解如何在Azure DevOps中使用AppCenter进行部署。
请注意,这种方法需要您在Azure DevOps中使用AppCenter,并按照AppCenter的指南进行配置和部署。

结论

根据您的需求,您可以选择使用方案1、方案2或方案3中的任何一种。这些解决方案都可以帮助您在Azure DevOps中签名Xcode项目流水线,并处理配置文件的管理和更新。根据您的具体情况和偏好,选择最适合您的解决方案。

正文完