为啥 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利?

Posted

技术标签:

【中文标题】为啥 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利?【英文标题】:Why does Xcode 12.5 `xcodebuild -archive` complain about a missing appclip entitlement in an app that does not have an AppClip?为什么 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利? 【发布时间】:2021-05-21 12:59:55 【问题描述】:

没有 App Clip 且在 Xcode 12.4 下成功构建的应用在使用 12.5 时会在存档阶段产生错误。

权利文件的相关域部分如下所示:

<key>com.apple.developer.associated-domains</key>
<array>
    <string>applinks:applinks.ourdomain.co.uk</string>
    <string>applinks:www.ourdomain.co.uk</string>
    <string>applinks:ourdomain.co.uk</string>
</array>

我的印象是,相关域中没有 &lt;string&gt;appclip:ourdomain.co.uk&lt;/string&gt; 条目意味着我们没有声称拥有 App Clip。

我们 CI 上的错误输出显示:

error: exportArchive: Provisioning profile "Our App Name" doesn't
include the com.apple.developer.associated-appclip-app-identifiers entitlement.
Error Domain=IDEProfileQualificationErrorDomain Code=8
"Provisioning profile "Our Profile Name" doesn't include the
com.apple.developer.associated-appclip-app-identifiers entitlement."
UserInfo=NSLocalizedDescription=Provisioning profile "Our Profile Name" doesn't
include the com.apple.developer.associated-appclip-app-identifiers entitlement.,
IDEProfileQualificationError_RequiredEntitlements=
    "application-identifier" = "$(AppIdentifierPrefix)uk.co.ourdomain.ourapp";
    "aps-environment" = production;
    "com.apple.developer.associated-appclip-app-identifiers" =     (
        "TeamName.uk.co.ourdomain.appname.Clip"
    );
    "com.apple.developer.associated-domains" =     (
        "applinks:applinks.ourdomain.co.uk",
        "applinks:www.ourdomain.co.uk",
        "applinks:ourdomain.co.uk"
    );

我没有解释为什么这包含在所需的权利中:

"com.apple.developer.associated-appclip-app-identifiers" =     (
    "TeamName.uk.co.ourdomain.appname.Clip"
);

Other people 在有 App Clips 但我们没有的应用遇到同样的错误。

【问题讨论】:

【参考方案1】:

通过从 Apple 下载新生成的配置文件来解决这个问题,除了在权利部分添加了一个空的 appclip-app-identifiers 条目之外,该配置文件与原始配置文件相同。

【讨论】:

【参考方案2】:

我通过删除 ~/Library/MobileDevice/Provisioning Profiles 中的所有配置文件解决了这个问题,并使用 XCode 再次安装它们,位于应用程序的目标 > 签名和功能中。

【讨论】:

以上是关于为啥 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用 XCode 和 xcodebuild 之间存在差异?

xcodebuild 使用嵌入式库创建 xcframework

xcodebuild:在使用条件集错误覆盖参数时实现对宏的 XCBuild 支持

xcodebuild 比 Xcode 慢得多?

xcodebuild 更新到 xcode 4.3 后移动

Xcode 7.2 使用 xcodebuild 构建项目失败