iPhone 调试:如何解决“无法获取进程任务”?

Posted

技术标签:

【中文标题】iPhone 调试:如何解决“无法获取进程任务”?【英文标题】:iPhone Debugging: How to resolve 'failed to get the task for process'? 【发布时间】:2010-12-02 02:17:48 【问题描述】:

我刚刚向 XCode 添加了一个配置文件(需要支持通知和应用程序购买),根据需要设置临时分发的构建配置,并尝试在设备上运行应用程序(我已经这样做了几次过去,没有任何问题)。

应用程序已安装,但无法启动。在控制台上,我看到以下消息:

Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.

但是,如果我在设备上手动启动应用程序,它会按预期工作。我最近为 Snow Leopard 安装了最新的 XCode 3.2。这是此版本 XCode 的已知错误还是我做错了什么?

编辑:它适用于使用开发配置文件的发布分发。 我再次检查了临时配置文件,以确保它包含我正在使用的设备。

【问题讨论】:

这也可能有帮助:转到 Organizer -> Projects -> DerivedData 删除并清理。确保 Project 和 Target 中的所有签名设置一致且正确 - 这对我来说很有帮助.... 【参考方案1】:

临时配置文件不支持调试。您需要使用 Development 配置文件进行调试,并且仅将 Ad-Hoc 配置文件用于分发不可调试的副本。

【讨论】:

据我所知,我没有在开发者计划门户上看到此信息。但我对 fbrereto 的评论解释了为什么会这样:我们在调试和发布配置中都没有 Entitlements.plist 文件。 在 XCode 4 中不小心将代码签名身份设置为 iPhone 发行版后,我遇到了同样的问题 如果我只点击“开始”,如何将配置文件切换回调试模式 这只是 Apple 为您设置的另一个小陷阱。由于门户错误,在重新完成我所有的个人资料和证书后才发生这种情况......叹息。感谢您的信息,解决了我的问题。 这是我的问题的答案。与权利无关。【参考方案2】:

当应用程序包含 Entitlements.plist 文件时,我在通过 XCode 调试设备上的二进制文件时遇到了问题,而无需将其安装到设备上进行调试。然后,一般来说,我已将这个文件包含在发布版本中(App Store 需要它)并删除它以进行调试(这样我就可以从 XCode 调试应用程序)。这可能是你的问题。

更新:从(至少)2010 年 8 月(iPhone 4.1 SDK)开始,在许多情况下(例如,通过 App Store 分发),Entitlements.plist 不再需要包含在您的应用程序中。 ) 有关需要 Entitlements.plist 的情况的更多信息,请参阅here:

重要提示:通常仅在构建 Ad Hoc Distribution 或启用 Keychain 数据共享时才需要授权文件。如果这些都不正确,删除代码签名权利中的条目。 (强调我的)

【讨论】:

你是对的,我已经验证确实是在 Entitlements.plist 中设置为 false 的 get-task-allow 布尔值阻止了调试。谢谢。 仅供参考,我遇到了完全相同的问题,解决问题的方法是将 get-task-allow 设置为 YES...没有权利文件,请尝试添加它...:P ios 8.1.3 起,企业签名的应用程序也需要 entitelments.plist。【参考方案3】:

我有同样的问题,但通过以下简单的步骤解决了:

    确保您选择了调试而不是发布。 在调试配置中,在项目设置中,您应该选择了开发人员的配置文件,并且无需指定权利 plist。 同样的设置也在:Targets: 下,如果没有手动将它们更改为上述调试配置。它会起作用的。

一切顺利。

【讨论】:

这个工作的原因几乎可以肯定是你的调试配置在 Entitlements.plist 中设置了 get-task-allow ,而发布版本没有 - 这是为了阻止人们将调试器附加到他们复制他们从 App Store 获取(另请参阅下面 Kai 的回答,将其设置为 yes 以使其正常工作..) 为我做的。不知何故,构建被设置为“发布”,并且发布配置文件设置不正确。【参考方案4】:

我花了一段时间才弄明白。

如果您使用的是分发版/ad hoc/ 配置文件,则无法通过 xcode 对其进行测试。你会得到错误:被调试的程序没有运行。

您可以构建应用程序,在 xcode 中转到应用程序中的产品文件夹,单击带有您项目名称的文件,然后选择在 finder 中显示。您可以将此应用程序拖入 iTunes 并同步,然后您可以在设备上测试您的应用程序。

【讨论】:

是的,这是我的问题。我没有权利文件,但我已将调试构建配置切换到分发配置文件。切换到开发配置文件可以解决所有问题。 我希望 XCode 在这方面能更加坦率。在连接到 XCode 时,您无法在设备上测试分发版本,这一点并不明显。这是一个常见的用例。【参考方案5】:

如果您收到此类错误,唯一的原因可能是您使用了分发配置文件而不是 Xcode 中的开发配置文件或缺少授权属性。如果您没有使用 Entitlements.plist,那么唯一可能的错误可能是应用程序正在使用分发配置文件打包。您可以通过确认构建日志来验证这一点。要更改此设置,请转到项目的构建设置并验证代码签名实体设置。要使调试工作,此设置应该是您当前使用的配置的开发人员配置文件。

https://developer.apple.com/library/ios/#qa/qa1682/_index.html

为了即时结果,请从 xcode 中删除所有移动配置文件并安装您打算使用的开发人员配置文件。

【讨论】:

【参考方案6】:

在这个问题上将近 2 小时!最后我通过替换解决了它

iPhone 开发者

iPhone 开发者:我的开发者帐户名称

对于Debug的CODE_SIGN_IDENTITY

    选择项目目标 构建设置 按“代码符号”搜索 修改 CODE_SIGN_IDENTITY 部分的调试行,使用 “iPhone 开发者:我的开发者帐户名称”,而不仅仅是 “iPhone 开发者”。

我不知道它为什么有效,但它确实有效!至少对我来说!


环境:Xcode 5.0 (5A1412)。

【讨论】:

这对我也有用,谢谢。不得不摆弄到底要使用什么身份,但它最终喜欢了某个组合。 Xcode 6 真的需要一个“自动更正”功能来处理这类东西,我没有时间做很多家务! 只是为了补充一点,我所做的类似,但不同 - 我将配置文件更改为团队配置文件(用于调试),它将代码签名者设置为“自动” -在 XCode 5+ 中,您确实应该为构建选择配置文件并让它根据它决定使用哪个签名者。 @KendallHelmstetterGelner thx,这可能对其他人有帮助! :D 还应该添加我更改了“调试”构建的团队配置文件,它用于在 XCode 中的设备上运行(除非您更改方案设置) 这解决了我的问题,除了使用不同的代码签名身份进行重建之外,没有做任何事情。谢谢!就我而言,我使用的是临时分发身份。【参考方案7】:

检查你的代码签名部分。确保代码签名是 iPhoneDeveloper 代码签名

【讨论】:

这是我的 - 出于某种原因,在我的目标上,“团队”已更改为“无” - 将其改回排序。干杯【参考方案8】:

打开 Entitlements.plist 并将布尔值 get-task-allow 设置为 YES - 调试器现在可以附加!

【讨论】:

是的,我已经尝试了很多次,但不明白为什么它不能解决问题。如果您仍想合并 testflightapp,这将是最好的方法 我的运行方案设置为调试。只有这个解决方案为我修复了它!谢谢。 谢谢,真的帮到我了!!【参考方案9】:

转到 Edit Schemes 并在 Run -> Info -> Build Configuration 下,从 Ad-Hoc 更改为 Debug。点击确定保存。

【讨论】:

【参考方案10】:

可能是您的手机上有过期的开发资料。

我的开发配置文件几天前过期了,我不得不更新它。我在手机上安装了新的配置文件,并在尝试运行我的应用程序时出现了相同的错误消息。当我查看手机上的个人资料设置时,我注意到了过期的个人资料并将其删除。这为我清除了错误。

【讨论】:

【参考方案11】:

当我尝试从 Xcode 启动应用程序时收到此错误,因为我认为我只选择了分发配置文件。构建成功,所以我创建了 .ipa 文件。我使用 testflightapp.com 来运行该应用程序。您也可以使用 iTunes。

【讨论】:

【参考方案12】:

正如 Buffernet 所述,您不能使用分发配置文件进行调试。当我切换到开发人员配置文件时,我收到错误“找不到此可执行文件的有效配置文件”。

一个快速的谷歌搜索将我带到下面列出的文章。从那里,我意识到我没有得到有效的开发配置文件,因为我的 iPhone 没有添加到配置门户以及所有其他相关内容。

确保您运行 iPhone 开发人员配置文件,并且您的设备已添加到配置门户!

http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html

【讨论】:

【参考方案13】:

是的,用于分发目的的配置文件,即 Distrutions 配置文件不支持调试并给出此错误。只需创建和使用调试配置文件(从 developer.apple.com 帐户创建配置文件时请注意这一点)。

【讨论】:

【参考方案14】:

我刚刚更改了我的 bundleIdentifier 名称,这似乎可以解决问题。

【讨论】:

【参考方案15】:

我已经用 JailCoder http://jailcoder.com/ 修补了我的项目并解决了问题。 只需下载它并将您的 xcode 项目拖到它。

【讨论】:

以上是关于iPhone 调试:如何解决“无法获取进程任务”?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Mac远程调试iPhone/iPad 中的网页

如何在 iPhone Safari 上调试网页

电脑上safari如何给iphone调试

如何连接到 iPhone 的 webkit 调试器?

如何选择 iPhone 模拟器模型在 Visual Studio Code 上调试 Flutter 应用程序?

Xcode 如何在 silicon Mac 上调试 iOS 版本的 App