将 HealthKit 添加到 Apple Watch 扩展后,应用标识符冲突

Posted

技术标签:

【中文标题】将 HealthKit 添加到 Apple Watch 扩展后,应用标识符冲突【英文标题】:Conflicting app identifiers after adding HealthKit to Apple Watch Extension 【发布时间】:2020-03-04 17:52:16 【问题描述】:

我正在向我现有的 ios 目标添加一个 watchOS 目标。一切正常,直到我在 watchapp.extension 的“签名和功能”部分添加了 HealthKit 功能。 尽管在 iOS 目标上一切正常,但在我添加了相应的功能并收到 3 个错误后,watchapp 扩展程序抱怨。其中第一个声明:

"注册包标识符失败。 应用标识符“[...].watchkitapp.watchkitextension”无法注册到您的开发团队。将您的捆绑包标识符更改为唯一字符串以重试。”

After adding the capability without details

After adding the capability with details

到目前为止我尝试过并注意到的事情如下:

watchkitapp.watchkitextension 的 Xcode 托管(“自动签名”)配置文件比 iOS 目标的配置文件滞后一天。虽然这个缺少功能和 2 个权利,但后者是最新的。另外两个错误也说明了这一点:

“Provisioning profile “iOS Team Provisioning Profile: *”不支持 HealthKit 功能。”

“供应配置文件“iOS 团队供应配置文件:*”不包括 com.apple.developer.healthkit 和 com.apple.developer.healthkit.access 权利。”

在 Apple Developer 帐户中,我可以找到 iOS 标识符和 watchapp 标识符。但是,watchkitapp.watchkitextension 标识符丢失并且无法手动添加,因为它已经被使用,因此不是唯一的。我不知道如何。

手动下载配置文件不起作用。

在项目中删除和添加 watchapp 目标确实重现了相同的错误。

应用程序已在应用商店中运行,因此无法更改标识符/捆绑包 ID。

当我删除 healthKit 功能时,一切正常。我可以在我的设备上运行它,甚至可以将它上传到商店。

我的字面意思猜测是 watchapp.extension 的配置文件是根本原因,并且它以某种方式附加到另一个团队 - 我不知道为什么。它比 iOS 目标滞后一天,并且没有收到有关 healthkit 的更新。配置文件中的证书与 iOS 目标中的证书相同。但是,即使从零开始读取 watchapp 目标也无济于事。

【问题讨论】:

【参考方案1】:

手表应用程序扩展以相同的标识符注册到我的免费计划帐户并导致冲突。 Apple 必须删除该标识符才能将其分配给我的“真实”开发者帐户。

不知何故,我设法使用与父应用相同的初始捆绑标识符注册了我的手表应用扩展。但是,我没有使用我的真实开发者帐户注册它,而是使用我的免费计划帐户进行注册,因此“无法注册捆绑标识符”。错误。

令人惊讶的是,我的手表应用程序(不是扩展程序)是在我的真实帐户下注册的,这让我很烦恼,因为它们都是在您创建 watchOS 目标时同时创建的。

问题在于,作为免费用户,您无法查看在您的帐户下注册的标识符。您必须要求 Apple 为您删除标识符。之后 Xcode 创建了一个新的配置文件。

【讨论】:

嗨,有什么方法可以检查哪个帐户使用了捆绑标识符?我们有一个公司帐户,其中包含多个开发人员帐户,因此很难知道发生了什么。另外,当应用程序已经在公司帐户上发布时如何处理?

以上是关于将 HealthKit 添加到 Apple Watch 扩展后,应用标识符冲突的主要内容,如果未能解决你的问题,请参考以下文章

将位置和天气信息添加到 HealthKit Workout Session

从 Apple Watch 上的 HealthKit 中移除水样

从 Apple Watch 上的 HealthKit 中移除水样

当应用程序处于后台模式时,HealthKit Observer 不工作

iOS Apple HealthKit 仅 Apple Watch 步数数据

如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)