ios - 设备上的 iOS 单元测试无法启动 - HealthKit 权利错误
问题描述
每当我尝试在设备上运行单元测试时。一切似乎都已构建并安装到设备上,但是当它即将运行时,我在对话框中收到以下错误:
可执行文件已使用无效权利进行签名。在您的应用程序的代码签名权利文件中指定的权利无效、不允许或与您的配置文件中指定的权利不匹配。(0xE8008016)。
模拟器上的单元测试工作正常。但是我想让单元测试在设备上运行,因为它会运行得更快一些。
我的项目有以下警告:
“示例”的配置文件“匹配开发 com.example.app”包含权利文件中没有的权利:com.apple.developer.healthkit.access。要使用这些权利,请将它们添加到您的权利文件中。否则,请从您的配置文件中删除未使用的权利。
但其他一切正常,我可以运行目标并将其发布到应用商店。只有设备上的单元测试无法启动。我查看了开发配置文件,发现它包含com.apple.developer.healthkit.access
不在应用商店配置文件中的密钥。但是当我将此密钥添加到权利文件时,它仍然不运行单元测试。
我曾尝试删除权利文件并让 Xcode 重新生成它,但这不起作用。我的项目有 5 个不同的应用程序目标,每个目标都有自己的单元测试包。
我也尝试过重新生成开发配置文件,但它总是有一个com.apple.developer.healthkit.access
密钥。
我按照这里的建议查看了项目文件。我发现所有应用程序目标都使用相同的权利文件。所以我对其进行了更改,以便所有应用程序都使用自己的权利,但单元测试仍然无法启动。com.apple.developer.healthkit.access
警告仍然存在
有没有办法可以在设备上进行单元测试以启用 healthkit?没有 HealthKit 的设备上的单元测试也将是一个改进,但其他一切也应该工作(分发等......)
解决方案
对于 Ionic/Cordova 开发人员转到 Xcode -> File -> Project Settings -> Build System 并选择“Legacy Build System” Screenshot
推荐阅读
- java - 创建名为“passwordEncoder”的 bean 时出错:请求的 bean 当前正在创建中
- postgresql - 在 PostgreSQL 中将列的数据类型更改为整数(带有 n/a 的列)
- c - Lua如何将用户数据从元表__index放入C闭包?
- javascript - 在 Dropzone JS 中选择文件后立即更新 UI
- python - 是否有任何函数可以将 python 代码转换为 MIPS?
- cookies - 为什么每个网站编码人员都不使用 DNT?
- python-3.x - TFS REST API System.IterationPath 返回错误
- c# - 请求中的重定向 URI https://localhost:44322/domain.com 与授权给 OAuth 客户端的 URI 不匹配
- vue.js - Vue 监视待处理的 http 请求
- c# - DirectoryInfo.EnumerateDirectories 仅可访问的文件夹和未隐藏的文件夹