Failed to Attach to Process ID Xcode

Anyone has experienced this problem? Yesterday I still can run my app in simulator but now I cannot run my app since Xcode prints this error in console:

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

Screenshot for error

I have tried to reinstall, do this post and create new project but returns no luck. Anyone can resolve this issue?

I use Xcode 4.5 Preview 2 and try to run iOS simulator 6

79283 次浏览

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

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

两种方法

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

现在转到 产品-> 清洁

Now run it on any simulator and it will work.

方法2 :

Tap on Reset

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

I experienced the same problem, and after a while I found out that it was due to the fact that my XCode project included a 文件夹参考 to a folder named < em > 资源 .

看来 XCode 不喜欢这个名字。

只有 删除文件夹引用重命名文件夹解决了这个问题。

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

我刚把这个贴在开发者论坛上,这是一个简单的解决方案,可能对这里的某些人有帮助:

我遇到了完全相同的问题: 当使用任何当前版本的 Xcode 4时。Xx 和 LLDB 调试器,以及任何版本的模拟器,XCode 一直崩溃“未能连接到进程...”我唯一的解决方案是切换到 GDB 调试器。这令人失望,因为我真的很想在 XCode 4.6-DP 中尝试新的、健壮的 LLDB。

然后我想起来了,不久前我在... etc/hosts 更改了我的网络/服务器主机文件,以容纳几个 Apache2服务器虚拟主机,也就是说,我删除了这一行:

127.0.0.1本地主机

就是这样。删除这条线,XCode 在与 LLDB 连接到模拟器时崩溃了。 恢复这一行,XCode 与 LLDB 和 Simulator 一起工作得很好。

无论如何,这可能不是你的问题,但它值得探索。在我看来,这是一个严重的非法漏洞。

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

I had to change my /etc/hosts permissions back to the default after an inadvertent change:

sudo chmod 644 /etc/hosts

After that, simulator/LLDB worked for me.

I've had the same problem when debugging on the device. The app crashed on start but didn't appear as a running process.

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

继续 Xcode,Product-> Attach to Process-> By Process id 并附加 到 < em > debug 服务器 Process PID。等一下,然后按 别说了键。

The stale debugserver and app processes disappear.

(When using the simulator, the equivalent would be to use the terminal, ps, and kill the App process. Haven't tried that, though).

我以某种方式删除了/etc/hosts 文件中的记录,得到了同样的错误。 You should check whether you have in your /etc/hosts file the line "127.0.0.1 localhost". 这对我有帮助!

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

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文件搞混了,转到 第二步

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 缓存并返回到 第一步,否则继续到 Step 3

步骤3: 正确的文件格式: 它应该是 unix 或 LF *

$ file /etc/hosts

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

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

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

  • In Sublime Text 2 this can be done throught the view menue: 查看 > 行尾 > Unix

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

在我的情况下,解决方案是不同的: 运行模式是“发布”。改成“调试”就修好了。Xcode 4.5. x 没有问题。

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

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

愿它也能帮助别人。

虽然很烂,但重启电脑是唯一有效的办法。我尝试从 LLDB 切换到 GDB,重置 Simulator 的内容,并重新启动 Xcode。唯一起作用的是重新启动我的电脑,重新打开 Xcode,重新运行应用程序。

我也遇到了同样的问题,我做了一些答案的组合来解决这个问题:)

通过单击 MenuBar 中的“ Product”清除“生成文件夹”。同时按 Alt 键点击“清理生成文件夹”。现在重新启动 xcode 和模拟器。 现在应该可以了。如果没有,也可以尝试更改 bundle 标识符和 Simulator“ Content Reset”,然后重新启动 xcode 和模拟器。

对我来说,这个问题是由一个相当愚蠢的错误引起的: 我通过复制一个现有的目标为我的项目创建了一个新的目标,但是忘记更改目标的 info.plist 文件中的 捆绑标识符

我通过删除 Xcode 派生的数据内容修复了这个问题。

在 finder 中,按 SHIFT + CMD + G,键入下面的路径并删除所有衍生数据中的数据:

  ~/Library/Developer/Xcode/DerivedData

enter image description here

还重置模拟器构建

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

今天碰到了这个,我不小心从我的目标设置中删除了我的发射图像。

试着做下一步:

  • 转到 Product/Scheme/Edit Scheme,然后选择 Run 部分。
  • Select Info Tan and set Debugger None.
  • Run project. It must be working (without debugger)
  • 返回 EditScheme 并选择调试器 LLDB
  • 运行项目。它是工作。

可能还需要删除派生数据并执行 Product/Clean 操作

Above answer really helped me. Https://stackoverflow.com/a/12819757/1752988 因为在我的 XCode 中,我使用了故事板和自定义视图控制器。在它的警告列表中,我看到一些笔尖文件丢失了。看到这个我很怀念。然而,我看到了这个答案, 即使我不喜欢重置我的应用程序模拟器的内容,我做到了,它真的为我工作。

将调试器从 Product-> Scheme-> Edit Scheme (Run)从 LLDB 更改为 GDB 也不适合我。

附注:-对不起,我添加这个答案作为一个支持评论以上,因为我没有15个声誉赞成上述答案或50个点的声誉评论以上。

是否有多个用户登录到您的计算机?我的笔记本电脑上有“个人”和“工作”账户。当我试图从我的个人帐户调试时,我得到了这个错误,但是我让模拟器在我的工作帐户中运行。从另一个账户退出模拟器解决了我的问题。

还有一个要记录在案: (这些建议对我都不管用)

美洲狮: XCode 4.6.3

  • I moved the whole Application to Trash and deleted following other folders
  • /Users/[USERNAME]/Library/Developer
  • /Users/[USERNAME]/Library/Caches/com.apple.dt.XCode
  • /Users/[USERNAME]/Library/Application Support/iPhone Simulator

  • 重新启动系统并重新安装 XCode

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

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

Strange but True

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

已设置“构建活动架构: 否”。只需将其更改为“是”,它就工作了。

我知道这是一个老问题,但它第一次出现在我做了谷歌搜索“未能附加到进程 ID”。我用的是 Xcode 7。发生在 iOS9发布之后,我把我的 Swift 应用升级到了 Swift 2。

删除我的应用程序在模拟器和做一个新的构建和运行清除它。

The following worked for me on iOS 9.1 :

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

注意: 无需重置模拟器。

我知道这很老套,但对我来说,解决办法如下:

Goto: 目标 > 构建设置 > 链接 > 马赫 -O 类型 = 可执行文件

我工作在 Ionic2应用程序,我是新的这个,甚至 Xcode 和模拟器。
最初我的应用程序是在模拟器上工作,但一段时间后,它开始产生错误,如-
Xcode 错误: 未能附加到进程 id

我寻找,尝试以上所有的答案,但我的问题没有得到解决。
然后我更新(爱奥尼亚npmCordova)我的机器设置-

******************************************************
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 离子构建 ios。
  3. 将 xcode 更改导入到 xcode。
  4. 将内容和设置重置为-
    enter image description here
  5. clear product from xcode,
    enter image description here
  6. 运行 Xcode,现在它正在模拟器上工作。

很高兴看到这个! ! !

在 Xcode 9 + 上执行以下操作: Go to the Xcode menu: Product-Scheme - Edit Scheme and under 快跑 tab be sure that the 调试可执行文件 checkbox is checked! That's it!

enter image description here

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

我在 MacOS Mojave Beta 和 Xcode 9.4.1的模拟器中为 iOS 应用程序运行 UI 测试套件时碰巧遇到了这个问题。

Turns out, on macOS Mojave the codesign tool (which is a part of the OS itself and not a part of the Command Line Tools or Xcode) signs processes into a 硬化运行时 environment which includes runtime code signing enforcement, library validation, hard, kill, and debugging restrictions. This, together with the System Integrity Protection in macOS Mojave, prevents the lldb debugger from connecting to the running target.

要解决这个问题,你必须做出选择:

  1. 一个显而易见的问题,可能就是仅仅使用 Xcode 10,它似乎能够很好地处理连接。

  2. 重新启动操作系统进入恢复模式,并关闭与 csrutil disable终端的系统完整性保护。然后调试器愉快地进行连接。

我花了相当多的时间来思考这个问题,并且在阅读了下面的文章后解决了这个问题: http://www.lapcatsoftware.com/articles/debugging-mojave.html

只是我的意见,希望这对谁有帮助。

As @eploko mentioned in his answer in Mojave the debuggability policy changes. This answer is only for those having problems running the test frameworks using Xcode 9.4.1 and Mojave.

根据苹果公司的说法,这是一种有意为之的行为,所以你有两种解决方案:

  1. 使用 Xcode 10,您的问题就会消失。
  2. 在方案编辑器中禁用 Test 目标的调试器。

为此,请选择 Test 目标,然后选择 编辑计划。一旦有选择的 测试部分在左侧和取消选中 调试可执行文件

enter image description here

更多的信息在这个 雷达。我希望这对你有帮助。

If you're using Cocoapods, make sure you're building dynamic frameworks by having use_frameworks! in your Podfile.

当我在 Xcode 10.2.1和 Cocoapods 1.6.1上构建 Cocoapods 依赖项的静态库时,由于这个“无法附加”错误,我无法调试目标。使用 use_frameworks!,错误消失了,我可以再次进行调试。


细节

在我的 Podfile 中,我正在构建一个静态框架,这是默认的,它混合了快速和基于目标 c 的 pods。我用了 :modular_headers => true和一个吊舱。我的播客文件是这样的:

swift_version = '5.0'


target 'TargetName' do
platform :ios, '12.2'


pod 'IGListKit', :modular_headers => true
pod 'PromiseKit/CorePromise', '~> 6.0'
end

上面的 Podfile 无法用 Xcode 10.2.1进行调试,总是导致“无法附加到 PID”模式。

但是,当我加入 use_frameworks!,它工作了!不管有没有,我都能复制出来。下面是可行的 Podfile:

swift_version = '5.0'
use_frameworks!


target 'TargetName' do
platform :ios, '12.2'


pod 'IGListKit'
pod 'PromiseKit/CorePromise', '~> 6.0'
end

这个问题的答案太多了,我没有看到我认为正确的答案。这是授权的问题。在终端机中输入:

sudo DevToolsSecurity -enable

在这个页面或相关的页面 Could not attach to pid : “####” unable to attach的答案都不适合我。(另外,我看到的症状有一个附加的细节,没有看到在这些网页中的任何提到,这是守门人会来说,它正在“验证”的应用程序,即使它是一个 iOS 应用程序运行在模拟器上。总是在 PID 错误之前。)

以下是最终奏效的方法:

我让 xcode 尝试启动并附加到模拟器中的应用程序。它像往常一样失败了,网守“验证”然后是 PID 错误。但是,然后应用程序被安装在模拟器,所以我只是开始它在那里,它开始很好(如预期)。然后我使用 xcode 的 Debug > Attach 来处理... 菜单项并附加到运行应用程序的模拟器上。这个方法起作用了,现在它似乎已经修复了这个问题,我可以从 xcode 启动这个应用程序,它可以很好地附加到模拟器上,让我可以进行调试,而且我不再会看到 Gatekeep 的“验证”对话框。

如果您的应用程序在运行时使用一个或多个 XPC 服务,那么尝试在您的应用程序的调试方案中禁用这些服务的调试:

  1. 在 Xcode,点击菜单项 产品 > Scheme > 编辑计划
  2. 单击 选择选项卡。
  3. 关闭 调试应用程序使用的 XPC 服务设置。

在我的案例中,XPC 服务与 Sparkle 更新框架相关。