使用 xcodebuild 命令时 team/provisionning 配置文件错误

Wrong team/provisionning profile when using xcodebuild command

我正在尝试在我的 xcode 项目上构建一个持续集成的脚本,但我无法尝试 归档我的 xcode 项目 使用xcodebuild 命令。尝试时:

sudo xcodebuild -scheme MyScheme -archivePath builds/XXX.xcarchive archive DEVELOPMENT_TEAM=YYY CODE_SIGN_IDENTITY='iPhone Distribution' CODE_SIGN_STYLE='Manual' PROVISIONING_PROFILE_SPECIFIER=ZZZ

我总是遇到这个错误:

error: No profile for team 'YYY' matching 'ZZZ' found: Xcode couldn't find any provisioning profiles matching 'YYY/ZZZ'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor. 

但是,当手动打开 XCode 项目并尝试存档时,它运行良好。

我错过了什么?我怎样才能获得安装在我的 Mac 上的 team/provisionning_profile 的完整列表?

到目前为止我已经尝试过:

  1. 我试图删除指定开发团队和配置文件的部分,只留下方案标识符。考虑方案的相同结果是用相同的信息定义的。

  2. 我试图进入我的 mobileprovision 文件夹以检查配置文件是否存在(存在)

  3. 我试图在编辑器中显示 xcode 存档命令行(在“报告导航器”选项卡上)。实际上它从不直接显示 xcodebuild 命令而是一堆子命令。但是我发现我正在使用的 XXX 团队标识符和 YYY 配置文件正在此脚本中使用

有谁知道我该如何解决这个问题?

配置文件位于 ~/Library/MobileDevice/Provisioning Profiles/

您可以添加 -allowProvisioningUpdates 以允许 xcodebuild 到 "solve" 问题本身,但是...¯_(ツ)_/¯ safe/good结果会。您已指定 "manual",所以我假设您不想这样做。

我怀疑您正在尝试存档项目,但只安装了开发配置文件。从 Xcode 中构建项目的 Release 版本,这应该可以让它为您下载一个发布(分发)配置文件,然后您可以从命令行使用它。

终于找到问题了,出在xcodebuild之前的sudo

默认情况下,sudo命令将运行在root用户下执行以下操作,该用户没有安装任何配置文件,因为我总是在我的用户下注册它们轮廓。

这是我所做的:

sudo -u myuser xcodebuild -scheme MyScheme -archivePath builds/XXX.xcarchive archive DEVELOPMENT_TEAM=YYY CODE_SIGN_IDENTITY='iPhone Distribution' CODE_SIGN_STYLE='Manual' PROVISIONING_PROFILE_SPECIFIER=ZZZ

错误消失了。 希望这可以帮助某人。