有人遇到过这个问题吗? 昨天我仍然可以在模拟器中运行我的应用程序,但现在我无法运行我的应用程序,因为Xcode在控制台中打印此错误:
error: failed to attach to process ID <ID number>
我尝试重新安装,执行此操作post并创建新项目,但没有回复运气。 任何人都可以解决这个问题吗?
我使用Xcode 4.5 Preview 2并尝试运行iOS模拟器6
答案 0 :(得分:152)
重置模拟器中的内容和设置对我有用。这可以在“iOS模拟器”菜单中找到。
答案 1 :(得分:45)
转到“产品”菜单,找到“编辑方案”菜单。
在编辑方案窗口中,选择&#34;运行&#34;选项在屏幕左侧,然后在右侧,将调试器从LLDB更改为GDB。
答案 2 :(得分:21)
我遇到了同样的问题,过了一段时间后我发现这是因为我的XCode项目包含文件夹参考到名为 Resources <的文件夹/ EM> 强>
似乎XCode不喜欢这个名字。
只需删除文件夹参考或重命名文件夹即可解决问题。
答案 3 :(得分:20)
两种方法
方法1 :在文件夹应用程序支持 - &gt;内iPhone模拟器 - &gt; 在iOS的每个模拟器版本中 - &gt;应用程序 - &gt; 删除此处显示的所有文件。
现在转到产品 - &gt;清洁强>
现在在任何模拟器上运行它都可以。
方法2 :
答案 4 :(得分:8)
$ 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步
检查/etc/hosts
文件的顶部是否为此
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
如果文件中没有这些条目,请在文件顶部输入,使用$ dscacheutil -flushcache
刷新dns缓存并返回步骤1 ,否则继续到第3步。
$ file /etc/hosts
这应该返回:/etc/hosts: ASCII English text
如果返回/etc/hosts: ASCII English text, with CR line terminators
之类的内容,则文件格式错误,可能会被忽略。
使用您喜欢的文本编辑器将文件行结尾更改为unix或LF。
刷新dns缓存($ dscacheutil -flushcache
)并返回第1步
答案 5 :(得分:5)
这是一个古老的话题,但是我认为最新版本的macOS发生了一些变化。
我在macOS Mojave Beta和Xcode 9.4.1上的模拟器中尝试为iOS应用运行UI测试套件时遇到了这个问题。
结果证明,在macOS Mojave上,codesign
工具(是操作系统本身的一部分,而不是命令行工具或Xcode的一部分)将进程签名为强化运行时环境,其中包括运行时代码签名实施,库验证,硬,中止和调试限制。这与macOS Mojave中的系统完整性保护一起,可防止lldb调试器连接到正在运行的目标。
要解决此问题,您必须选择:
一个明显的例子可能就是使用Xcode10。它似乎确实可以很好地处理连接。
使用csrutil disable
将操作系统重新启动到恢复模式,并从终端关闭系统完整性保护。然后,调试器会愉快地连接。
我花了很多时间对此事进行思考,并且在阅读以下文章后能够解决所有问题:https://varnish-cache.org/docs/trunk/users-guide/vcl-hashing.html
我只有两美分。希望这对某人有帮助。
答案 6 :(得分:5)
与基金会的答案类似,本地主机文件似乎是罪魁祸首。
在无意中更改后,我必须将/etc/hosts
权限更改回默认值:
sudo chmod 644 /etc/hosts
之后,模拟器/ LLDB为我工作。
答案 7 :(得分:4)
我知道这是一个老问题,但是当我进行谷歌搜索&#34;没有附加到进程ID&#34;时,它首先出现在我面前。我正在使用Xcode 7.在iOS9发布后发生了我已经更新了swift 2的swift应用程序。
在模拟器中删除我的应用程序并进行新的构建并运行清除它。
答案 8 :(得分:4)
我以某种方式从/ etc / hosts文件中删除或删除了记录,我得到了同样的错误。 您应该检查/ etc / hosts文件中是否有“127.0.0.1 localhost”行。 这帮助了我!
答案 9 :(得分:2)
我刚从模拟器中删除了应用程序(就像在实际设备上一样),当我重新运行它时,一切正常。
答案 10 :(得分:2)
我也有同样的问题,对我来说解决方案是: -
只需从模拟器中删除应用程序,然后清除并运行项目。
也许对其他人也有帮助。
答案 11 :(得分:1)
我在设备上调试时遇到了同样的问题。该应用程序在启动时崩溃但未显示为正在运行的进程。
我的解决方案是使用一些流程查看器应用程序(例如系统状态或类似)。找到陈旧的应用程序,然后找到父进程ID ,它通常是 debugserver 。
继续使用Xcode,产品 - &gt;附加到流程 - &gt;按进程ID并将附加到 debugserver 进程PID。等一下,然后按停止按钮。
过时的debugserver和app进程消失。
(当使用模拟器时,相当于使用终端,ps,并杀死应用程序进程。虽然没有尝试过。)
答案 12 :(得分:1)
在我的情况下,解决方案是不同的:运行模式是“发布”。更改为“调试”修复它。 Xcode 4.5.x没有任何问题。
答案 13 :(得分:1)
我正在研究Ionic 2应用程序,我是新手,甚至是Xcode和模拟器 最初我的应用程序正在模拟器上工作,但一段时间后它开始产生错误 - 如 xcode错误:无法附加到进程ID
我搜索过,尝试了以上所有答案,但我的问题没有得到解决 然后我更新了{Ionic,npm,cordova)我的机器设置 -
******************************************************
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
******************************************************
在此之后我只是从我的应用程序主目录
运行命令答案 14 :(得分:1)
对我来说问题是由一个非常愚蠢的错误造成的:我通过复制现有目标为我的项目创建了一个新目标,忘了更改目标的info.plist文件中的 Bundle Identifier 。
答案 15 :(得分:1)
我通过删除Xcode Derived数据内容解决了这个问题。
在Finder中按SHIFT + CMD + G并键入以下路径并删除DerivedData中的所有数据:
~/Library/Developer/Xcode/DerivedData
同时重置模拟器构建
~/Library/Application Support/iPhone Simulator/6.0/Applications
答案 16 :(得分:1)
答案 17 :(得分:1)
我通过退出XCode和Simulator解决了这个问题。重新开放项目。完成。
答案 18 :(得分:1)
以上回答真的对我有所帮助。 https://stackoverflow.com/a/12819757/1752988 因为在我的XCode中我使用了故事板和自定义视图控制器。并在其警告列表中,我看到一些nib文件丢失。看到这个,我被怀念了。但是,我看到了这个答案, 即使我不想重置我的App模拟器内容,我也做到了,它确实对我有用。
并且还从产品更改调试器 - &gt;方案 - &gt;从LLDB到GDB的编辑方案(运行)对我来说也不起作用。
P.s。: - 请原谅我,我在上面添加了这个答案作为支持评论,因为我没有15个声誉支持上述答案或50点声誉对上述评论。
答案 19 :(得分:1)
我刚在开发者论坛上发布了此消息。这是一个简单的解决方案,可以帮助这里的人:
我有完全相同的问题:当使用任何当前版本的Xcode 4.xx和LLDB调试器,加上任何版本的模拟器时,XCode一直崩溃,“未能附加到进程......”我的唯一解决方案是切换到GDB调试器。这是令人失望的,因为我真的想在XCode 4.6-DP中尝试新的,强大的LLDB。
然后我记得;我前段时间在... etc / hosts上更改了我的网络/服务器主机文件,以容纳几个Apache2服务器虚拟主机,即我删除了该行:
127.0.0.1 locahost
就是这样。删除该行,XCode在使用LLDB附加到模拟器时崩溃。 恢复该行,XCode与LLDB和模拟器一起工作得很好。
无论如何,这可能不是你的问题,但值得探索。就我而言,这是一个严重的无证错误。
答案 20 :(得分:0)
如果您的应用在运行时使用一个或多个 XPC 服务,请尝试在应用的调试方案中禁用这些服务的调试:
就我而言,XPC 服务与 Sparkle 更新框架相关。
答案 21 :(得分:0)
正如@eploko在他在莫哈韦沙漠(Mojave)中的回答中所提到的,可调试性策略发生了变化。该答案仅适用于使用Xcode 9.4.1和Mojave运行测试框架时遇到的问题。
根据Apple的预期行为,因此您有两种解决方案:
为此,请选择您的测试目标,然后选择编辑方案。在那里,选择左侧的测试部分,然后取消选中调试可执行文件。
此radar中的更多信息。希望对您有帮助。
答案 22 :(得分:0)
如果您使用的是Cocoapods,请通过在Podfile中添加use_frameworks!
来确保构建动态框架。
当我在Xcode 10.2.1和Cocoapods 1.6.1上构建Cocoapods依赖项的静态库时,由于出现此“无法附加”错误,因此无法调试目标。使用use_frameworks!
,错误消失了,我可以再次调试。
详细信息
在Podfile中,我正在构建一个静态框架,这是默认框架,其中混合了基于swift和基于Objective-c的Pod。我将:modular_headers => true
与其中一个豆荚一起使用。我的Podfile看起来像这样:
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
答案 23 :(得分:0)
如此众多的答案,我没有看到我认为是正确的答案。授权有问题。在终端中输入以下内容:
sudo DevToolsSecurity -enable
答案 24 :(得分:0)
此页面或相关页面Could not attach to pid : “####” unable to attach上的答案都没有为我工作。 (此外,我看到的症状有一个额外的细节,而这些页面上都没有提到,这是Gatekeeper会出现,并说它正在“验证”该应用程序,即使它是运行于iOS上的iOS应用程序也是如此。模拟器。总是在PID错误之前。)
这是最终起作用的东西:
我让xcode尝试启动并附加到模拟器中的应用程序。与往常一样,网守“验证”失败,然后出现PID错误。但是随后将应用程序安装在模拟器上,因此我就在那里启动了它,并且运行正常(如预期)。但是随后我使用了xcode的“调试”>“附加到进程...”菜单项,并附加到运行该应用程序的模拟器。那行得通,现在看来已经解决了问题,我可以从xcode启动该应用程序,它可以很好地连接到模拟器并进行调试,而不再获得Gatekeeper的“验证”对话框。
答案 25 :(得分:0)
如果没有答案适合可能需要它的人。这是我为Xcode 11.x.x解决的方法
在终端上运行以下命令:
sudo DevToolsSecurity -enable
然后您可以重新启动iOS模拟器
答案 26 :(得分:0)
我知道这是旧的 - 但我的解决方案如下:
转到:目标&gt;构建设置&gt;链接 - &gt; Mach-O Type =可执行
答案 27 :(得分:0)
我有同样的问题,在我的情况下问题是: -
已设置&#34;构建活动架构:否&#34;。只需将其更改为YES即可。
答案 28 :(得分:0)
今天也有同样的问题。我正在使用Xcode 4.6.3。我关闭了我的项目并在Xcode 5中打开它,它运行得很完美。
奇怪但真实
答案 29 :(得分: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
答案 30 :(得分:0)
您是否有多个用户登录到您的计算机?我的笔记本电脑上有“个人”和“工作”帐户。当我尝试从我的个人帐户调试时出现此错误,但我已将模拟器保留在我的工作帐户中。退出其他帐户中的模拟器解决了我的问题。
答案 31 :(得分:0)
尝试做下一步:
也许您需要删除派生数据并执行产品/清洁
答案 32 :(得分:0)
今天跑过这个。我不小心从目标设置中删除了我的启动图像。
答案 33 :(得分:0)
我遇到了同样的问题。为了使它成功,我做了一些答案的组合。 :)
单击MenuBar中的“Product”清理Build文件夹。按住Alt键的同时单击“清理构建文件夹”。现在重新启动你的xcode和模拟器。 现在它应该工作。如果没有,也尝试更改包标识符和模拟器“内容重置”,然后重新启动xcode和模拟器。
答案 34 :(得分:0)
尽管很蹩脚,重新启动计算机是唯一有效的解决方案。我尝试从LLDB切换到GDB,重置模拟器的内容,然后重新启动Xcode。唯一有效的方法是重新启动计算机,重新打开Xcode,然后重新运行应用程序。
答案 35 :(得分:0)
只需重置iOS模拟器的内容和设置,然后按命令+ shift + k键清理代码即可清理代码。这对我有用