无法附加到进程ID Xcode *

问题描述 投票:108回答:33

有谁遇到过这个问题?昨天我仍然可以在模拟器中运行我的应用程序,但现在我无法运行我的应用程序,因为Xcode在控制台中打印此错误:

error: failed to attach to process ID <ID number>

Screenshot for error

我试图重新安装,做这个post并创建新项目,但没有回复运气。有人可以解决这个问题吗?

我使用Xcode 4.5 Preview 2并尝试运行iOS模拟器6

xcode build ios-simulator pid
33个回答
151
投票

重置模拟器中的内容和设置对我有用。这可以在“iOS模拟器”菜单中找到。


2
投票

我刚从模拟器中删除了应用程序(就像在实际设备上一样),当我重新运行它时,一切正常。


2
投票

我也有同样的问题,对我来说解决方案是: -

只需从模拟器中删除应用程序,然后清除并运行项目。

也许对其他人也有帮助。


1
投票

我刚刚在开发者论坛上发布了这个。这是一个简单的解决方案,可以帮助这里的人:

我有完全相同的问题:当使用任何当前版本的Xcode 4.xx和LLDB调试器,加上任何版本的模拟器时,XCode一直崩溃'未能附加到进程...'我唯一的解决方案是切换到GDB调试器。这是令人失望的,因为我真的想在XCode 4.6-DP中尝试新的,强大的LLDB。

然后我记得;我前段时间在... etc / hosts上更改了我的网络/服务器主机文件,以容纳几个Apache2服务器虚拟主机,即我删除了该行:

127.0.0.1 locahost

就是这样。删除该行,XCode在使用LLDB附加到模拟器时崩溃。恢复该行,XCode与LLDB和模拟器一起工作得很好。

无论如何,这可能不是你的问题,但值得探索。就我而言,这是一个严重的无证错误。


1
投票

我在设备上调试时遇到了同样的问题。该应用程序在启动时崩溃但未显示为正在运行的进程。

我的解决方案是使用一些进程查看器应用程序(例如系统状态或类似)。找到陈旧的应用程序,然后找到通常是debugserver的父进程ID。

继续Xcode,产品 - >附加到进程 - >通过进程ID并附加到debugserver进程PID。等一下,然后按“停止”按钮。

陈旧的调试服务器和应用程序进程消失。

(当使用模拟器时,相当于使用终端,ps,并杀死App进程。虽然没有尝试过)。


1
投票

在我的情况下,解决方案是不同的:运行模式是“发布”。更改为“调试”修复它。 Xcode 4.5.x没问题。


1
投票

对我来说问题是由一个非常愚蠢的错误造成的:我通过复制现有目标为我的项目创建了一个新目标,忘了更改目标的info.plist文件中的Bundle Identifier。


1
投票

我通过删除Xcode Derived数据内容来解决这个问题。

在Finder中按SHIFT + COMMAND + G并键入以下路径并删除派生数据中的所有数据:

  ~/Library/Developer/Xcode/DerivedData

还重置模拟器构建

     ~/Library/Application Support/iPhone Simulator/6.0/Applications 

1
投票

以上答案真的对我有帮助。 https://stackoverflow.com/a/12819757/1752988因为在我的XCode中我使用了故事板和自定义视图控制器。并在其警告列表中,我看到一些nib文件丢失。看到这个,我被怀念了。但是,我看到了这个答案,即使我不想重置我的App模拟器内容,我也做到了,它真的对我有用。

并且还将调试器从产品 - >方案 - >编辑方案(运行)从LLDB更改为GDB也不适用于我。

P.s.:-请原谅我,我在上面添加了这个答案作为支持评论,因为我没有15个声誉支持上述答案或50点声誉对上述评论。


1
投票

我通过退出XCode和Simulator解决了这个问题。重新开放项目。完成。


1
投票

以下适用于iOS 9.1:

  1. 只需从模拟器中卸载应用程序即可
  2. 退出模拟器(Cmd + Q)
  3. 清理您的Xcode项目
  4. 在模拟器上运行

注意:无需重置模拟器。


45
投票

转到“产品”菜单,在那里找到“编辑方案”菜单。

在Edit Scheme窗口中,选择屏幕左侧的“Run”选项,然后在右侧,将调试器从LLDB更改为GDB。


1
投票

我正在研究Ionic 2应用程序,我是新手,甚至是Xcode和模拟器。 最初我的应用程序正在模拟器上工作,但一段时间后它开始生成错误像 - xcode错误:无法附加到进程ID

我搜索过,尝试了以上所有答案,但我的问题没有解决。 然后我更新了(Ionicnpmcordova)我的机器设置 -

******************************************************
 Dependency warning - for the CLI to run correctly,      
 it is highly recommended to install/upgrade the following:     

 Install ios-deploy to deploy iOS applications to devices.  `npm install -g ios-deploy` (may require sudo)

******************************************************

Your system information:

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-beta.10
Ionic CLI Version: 2.1.8
Ionic App Lib Version: 2.1.4
ios-deploy version: Not installed
ios-sim version: 5.0.8 
OS: OS X Yosemite
Node Version: v6.2.2
Xcode version: Xcode 7.2 Build version 7C68



******************************************************

在此之后,我只是从我的应用程序主目录运行命令

  1. 离子运行-l
  2. 离子构建ios。
  3. 导入的xcode更改为xcode。
  4. 重置内容并设置为 - enter image description here
  5. 来自xcode的清晰产品, enter image description here
  6. 运行Xcode,现在它正在模拟器上运行。

很高兴看到这个!!!


1
投票

在XCode 9+上执行以下操作:转到XCode菜单:Product-Scheme - Edit Scheme并在Run选项卡下确保选中Debug Executable复选框!而已!

enter image description here


0
投票

只需重置iOS模拟器的内容和设置,然后按命令+ shift + k键清理代码清理代码。这对我有用


0
投票

尽管很蹩脚,重新启动计算机是唯一有效的解决方案。我尝试从LLDB切换到GDB,重置模拟器的内容,然后重新启动Xcode。唯一有效的方法是重新启动计算机,重新打开Xcode,然后重新运行应用程序。


0
投票

我有同样的问题。为了使它成功,我做了一些答案的组合。 :)

单击MenuBar中的“Product”清理Build文件夹。按住Alt键的同时单击“清理构建文件夹”。现在重新启动你的xcode和模拟器。现在它应该工作。如果没有,也尝试更改捆绑标识符和模拟器“内容重置”,然后重新启动xcode和模拟器。


0
投票

今天跑过这个。我不小心从目标设置中删除了我的启动图像。


0
投票

尝试做下一步:

  • 转到产品/方案/编辑方案,然后选择运行部分。
  • 选择Info Tan并设置Debugger None。
  • 运行项目。它必须工作(没有调试器)
  • 返回Edit Scheme并选择调试器LLDB
  • 运行项目。这是工作。

也许您还需要删除派生数据并执行产品/清洁


0
投票

您是否有多个用户登录到您的计算机?我的笔记本电脑上有“个人”和“工作”帐户。当我尝试从我的个人帐户调试时出现此错误,但我已将模拟器保留在我的工作帐户中。退出其他帐户中的模拟器解决了我的问题。


0
投票

和另一个记录:(没有一个建议对我有用)

Mountain Lion:XCode 4.6.3

  • moved the whole Application to Trash并删除其他文件夹
  • /Users/[USERNAME]/Library/Developer
  • /Users/[USERNAME]/Library/Caches/com.apple.dt.XCode
  • /Users/[USERNAME]/Library/Application Support/iPhone Simulator
  • 重新启动系统并重新安装XCode

0
投票

今天也有同样的问题。我正在使用Xcode 4.6.3。我关闭了我的项目并在Xcode 5中打开它,它运行得很完美。

奇怪但真实


21
投票

我遇到了同样的问题,过了一段时间后我发现这是因为我的XCode项目包含一个名为Resources的文件夹的文件夹引用。

似乎XCode不喜欢这个名字。

只需删除文件夹引用或重命名文件夹就可以解决问题。


0
投票

我有同样的问题,在我的情况下问题是: -

设置“构建活动架构:否”。刚刚将其更改为YES并且工作正常。


20
投票

两种方法

方法1:在文件夹内部应用程序支持 - > iPhone模拟器 - >在每个模拟器版本的iOS中 - >应用程序 - >删除此处存在的所有文件。

现在去产品 - >清洁

现在在任何模拟器上运行它都可以工作。

方法2:


8
投票

Step1: ping

$ ping localhost

这应该返回类似的东西

PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.048 ms
...

如果这样可行,这个答案将无法解决您的问题,请尝试其他方法。

如果ping返回其他内容,例如:ping: cannot resolve localhost: Unknown host某些内容与/etc/hosts文件搞砸了,请转到步骤2

Step2: Check /etc/hosts

检查/etc/hosts文件的顶部是否如下所示

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

如果文件中没有这些条目,请在文件顶部输入,使用$ dscacheutil -flushcache刷新dns缓存并返回步骤1,否则继续执行步骤3。

Step3: Correct File Format: It should be unix or LF *

$ file /etc/hosts

这应该返回:/etc/hosts: ASCII English text

如果它返回类似/etc/hosts: ASCII English text, with CR line terminators 的内容,则文件格式错误,可能会被忽略。

使用您喜欢的文本编辑器将文件行结尾更改为unix或LF。

  • 在Sublime Text 2中,这可以在整个视图菜单中完成:View> Line Endings> Unix

刷新dns缓存($ dscacheutil -flushcache)并返回步骤1


5
投票

与fundtimer的答案类似,本地主机文件似乎是罪魁祸首。

在无意中更改后,我不得不将我的/etc/hosts权限更改回默认值:

sudo chmod 644 /etc/hosts

之后,模拟器/ LLDB为我工作。


5
投票

这是一个古老的话题,但我相信最新版本的macOS已经发生了一些变化。

在尝试在macOS Mojave Beta和Xcode 9.4.1上的模拟器中运行iOS应用程序的UI测试套件时,我偶然发现了这个问题。

事实证明,在macOS Mojave上,codesign工具(它是操作系统本身的一部分,而不是命令行工具或Xcode的一部分)将进程签名到一个强化的运行时环境,其中包括运行时代码签名实施,库验证,硬件,杀死,以及调试限制。这与macOS Mojave中的系统完整性保护一起阻止lldb调试器连接到正在运行的目标。

要解决此问题,您必须选择:

  1. 一个显而易见的可能就是使用Xcode 10.它似乎确实可以优雅地处理连接。
  2. 重新启动操作系统进入恢复模式,然后使用csrutil disable关闭终端的系统完整性保护。调试器然后愉快地连接。

我花了很多时间在这上面敲了一下,并且在阅读了下面的文章之后能够解决所有问题:http://www.lapcatsoftware.com/articles/debugging-mojave.html

只是我的两分钱。希望这有助于某人。


4
投票

我以某种方式从我的/ etc / hosts文件中删除或删除了记录,我得到了同样的错误。您应该检查/ etc / hosts文件中是否有“127.0.0.1 localhost”行。这对我有帮助!


4
投票

我知道这是一个老问题,但是当我进行谷歌搜索“未能附加到进程ID”时,它首先出现在我面前。我正在使用Xcode 7.在iOS9发布后发生了我已经更新了swift 2的swift应用程序。

在模拟器中删除我的应用程序并执行新的构建并运行清除它。

© www.soinside.com 2019 - 2024. All rights reserved.