Xcode 9 - 无法附加到框架单元测试的pid

时间:2018-04-09 16:17:26

标签: ios xcode unit-testing frameworks ios-simulator

使用时间机器从一个mac迁移到另一个mac后,我收到以下错误。

  

无法附加到pid

     

确保"项目名称"尚未运行,   和"系统用户名"有权调试它。

仅在运行(任何)Framework项目的单元测试时才会发生错误。在模拟器和设备上运行应用程序工作正常。

对应用程序运行单元测试有效,但由于此错误,无法为任何框架运行它。即使使用Alamofire或PromiseKit单元测试,我也会收到此错误。

我测试了在Stackoverflow上类似问题上建议的解决方案(我删除了派生数据,清理了所有内容,重新安装了Xcode,重新启动了mac ..)直到现在还没有解决问题。

我正在使用Xcode 9.3并使用Xcode 9.4-beta进行测试。

我在Mac OS High Sierra上运行 - 10.13.4(17E199)

欢迎任何帮助/建议!

6 个答案:

答案 0 :(得分:8)

在向Apple发布错误报告后,他们建议我:

  • 检查我的用户是否为管理员用户。情况确实如此。
  • 检查我是否有" _developer" group,在groups命令的输出中。情况就是这样。使用此命令:dscacheutil -q group
  • 使用命令sudo /usr/sbin/DevToolsSecurity -status检查开发者模式权限。我的状态不明。
  • 如果需要,使用命令sudo /usr/sbin/DevToolsSecurity -enable启用开发者模式权限。这终于解决了我的问题!

答案 1 :(得分:7)

如果您拥有Mojave操作系统,则:

1)打开您的目标方案

enter image description here

2)取消选中该选项

enter image description here

3)在测试目标时选择此方案(例如,测试“ TestApiTarget”-在测试方案中选择“ TestApiTarget”)。

它是bug report的临时解决方案

答案 2 :(得分:4)

我能够通过以下方式解决此问题:

  1. 添加Single View App个目标(我将其命名为HostApp
  2. HostApp目标设置为测试目标的主机应用程序

Setting HostApp as a host application

答案 3 :(得分:0)

您可以尝试以下步骤 -

  1. 打开keyChain并检查Keychain certificates并删除已过期的现有密钥。
    1. 从Xcode项目设置中取消选中 - automatically manage sign in
    2. 删除所有派生数据
    3. cmd+k
    4. 清理项目
    5. 然后关闭并Restart项目并运行...
  2. 我希望它能奏效。

答案 4 :(得分:-1)

您可以按照以下步骤执行此操作 -

  1. 杀死你的模拟器,然后从Xcode再次运行它。

  2. 如果您在构建开始后尝试构建太快。尝试 再次停止并运行项目。

  3. 这可能是密钥链访问中不受信任的证书的问题,请删除此类证书并重新构建。

  4. 最后,您可以重新检查Keychain证书。通过右键单击删除现有的(它们已过期) 并在"automatically manage signing"

    中取消选中Targets->General

    希望以上步骤可以解决您的问题。

答案 5 :(得分:-1)

Haven没有看到这个确切的错误,但我发现删除派生数据有助于修复更新后弹出的一些瞬态错误等。

您可以在Xcode中找到派生数据文件夹的位置 打开偏好设置/位置,然后点击箭头 进入派生数据后,您可以删除所有文件夹。 删除派生数据文件夹后的所有项目都需要重建。

希望这有帮助!

Xcode preferences/locations