每当我尝试在设备上运行单元测试时。一切似乎都已构建并安装到设备上,但是在其将要运行时,在对话框中出现以下错误:
可执行文件已使用无效的权利进行签名。应用程序的代码签名权利文件中指定的权利无效,不允许或与您的配置文件中指定的权利不匹配。 (0xE8008016)。
在模拟器上进行单元测试可以正常工作。但是,我想让单元测试在该设备上工作,因为它可以更快地工作。
我的项目有以下警告:
“示例”的供应配置文件“匹配开发com.example.app”包含的权利不在权利文件中:com.apple.developer.healthkit.access。要使用这些权利,请将它们添加到您的权利文件中。否则,请从您的配置文件中删除未使用的权利。
但是其他所有方法都可以运行,我可以运行目标并将其发布到appstore。仅设备上的单元测试无法启动。我查看了开发配置文件的内容,发现其中包含com.apple.developer.healthkit.access
密钥,该密钥不在appstore的配置文件中。但是,当我将此密钥添加到权利文件时,它仍然无法运行单元测试。
我尝试删除权利文件并让Xcode重新生成它,但这不起作用。我的项目有5个不同的应用程序目标,每个目标都有各自的单元测试包。
我也尝试过重新生成开发配置文件,但是它始终包含一个com.apple.developer.healthkit.access
密钥。
我按照建议的here查找了项目文件。我发现所有应用程序目标都使用相同的权利文件。因此,我对其进行了更改,以便所有应用程序都使用各自的权利,但是单元测试仍然无法启动。并且com.apple.developer.healthkit.access
警告停留在那里
有没有一种方法可以使设备上的单元测试与Healthkit一起使用?在没有HealthKit的设备上进行单元测试也将有所改进,但是其他所有内容(分发等)也应该可以工作
答案 0 :(得分:3)
对于Ionic / Cordova开发人员,请转到Xcode->文件->项目设置->构建系统,然后选择“旧版构建系统” Screenshot
答案 1 :(得分:1)
确保测试目标使用自动签名,并确保它与应用目标使用同一团队。还要确保他们使用相同的证书。
com.apple.developer.healthkit.access
警告似乎无关
此答案可能是针对this question的与设备上的单元测试有关的问题的答案。