iOS 设备单元测试无法启动 - HealthKit 权利错误

iOS on device Unit Testing fails to start - HealthKit entitlements error

每当我尝试 运行 设备上的单元测试时。一切似乎都已构建并安装到设备上,但当它即将 运行:

时,我在对话框中收到以下错误

The executable was signed with invalid entitlements. The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

模拟器上的单元测试工作正常。但是我想让单元测试在设备上运行,因为它会运行得更快一些。

我的项目有以下警告:

Provisioning profile "match Development com.example.app" for "Example" contains entitlements that aren't in the entitlements file: com.apple.developer.healthkit.access. To use these entitlements, add them to your entitlements file. Otherwise, remove unused entitlements from your provisioning profile.

但其他一切正常,我可以 运行 目标并将其发布到应用商店。只有设备上的单元测试无法启动。我查看了开发配置文件,发现它包含 com.apple.developer.healthkit.access 密钥,该密钥不在应用程序商店配置文件中。但是当我将此密钥添加到权利文件时,它仍然没有 运行 单元测试。

我曾尝试删除授权文件并让 Xcode 重新生成它,但这不起作用。我的项目有 5 个不同的应用目标,每个目标都有自己的单元测试包。

我也试过重新生成开发配置文件,但它总是有一个 com.apple.developer.healthkit.access 键。

我按照建议查看了项目文件here。我发现所有应用程序目标都使用相同的权利文件。所以我改变了它,让所有的应用程序都使用自己的权利,但单元测试仍然无法启动。 com.apple.developer.healthkit.access 警告保留在那里

有没有一种方法可以让我在设备上进行单元测试以在打开 healthkit 的情况下工作?在没有 HealthKit 的设备上进行单元测试也将是一种改进,但其他一切也应该有效(分发等...)

确保测试目标使用自动签名,并确保它使用与应用目标相同的团队。还要确保他们使用相同的证书。

com.apple.developer.healthkit.access 警告似乎无关

此答案可能是 this question 对设备单元测试相关问题的回答。

对于 Ionic/Cordova 开发人员转到 Xcode -> 文件 -> 项目设置 -> 构建系统和 select "Legacy Build System" Screenshot