iPhone调试:如何解决“无法获得处理任务”?


158

我刚刚向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的已知错误,还是我做错了什么?

编辑:它与使用开发供应配置文件的发行版一起正常工作。我再次检查了临时配置文件,以确保它包括我正在使用的设备。


这也可能有帮助:转到管理器->项目-> DerivedData删除并清除。确保Project和Target中的所有签名均设置一致且正确-这对我而言有帮助...
user387184 2011年

Answers:


110

当应用程序包含Entitlements.plist文件时,通过XCode在设备上调试二进制文件时遇到问题,该文件无需安装到设备上进行调试。通常,然后,我将这个文件包含在发行版本中(App Store所需的地方),并将其删除以进行调试(因此我可以从XCode调试该应用程序)。这可能是您的问题。

更新:(例如,通过App Store分发)由于(至少)2010年8月(iPhone 4.1 SDK)的Entitlements.plist不再是必要的,在很多情况下,你的应用程序,包括请参见这里有关案件时更多信息Entitlements.plist是必需的:

重要说明:通常仅在构建临时分发或启用钥匙串数据共享时才需要权利文件。如果以上两个都不成立,请删除“代码签名权利”中的条目。(强调我的)


没错,我已经证实,实际上是在Entitlements.plist中将get-task-allow布尔值设置为false可以防止调试。谢谢。
Massimo Cafaro 09年

1
仅供参考,我遇到了完全相同的问题,解决该问题的方法是添加权利文件,并将get-task-allow设置为YES ...因此,如果您遇到相同的问题而又没有权利文件,尝试添加......:P
Alex Zak

从iOS 8.1.3开始,企业签名应用程序还需要entitelments.plist。
Roy K

289

临时配置文件不支持调试。您需要使用“开发”配置文件进行调试,并且仅将“临时”配置文件用于分发不可删除的副本。


据我所知,我尚未在开发人员计划门户上看到此信息。但是我对fbrereto的评论解释了为什么会这样:调试和发行版配置中都没有Entitlements.plist文件。
Massimo Cafaro 09年

5
我不小心在XCode 4
中将

1
如果我只单击“开始”,如何将配置文件切换回调试
spankmaster79 2011年

苹果为您提供的那些小陷阱中的另一个。重新完成我的所有个人资料和证书后,刚刚发生这种情况,这要归功于门户网站的错误... 感谢您提供的信息,解决了我的问题。
2012年

这就是我的问题的答案。与权利无关。
DOOManiac

37

我遇到了相同的问题,但是通过执行以下简单的步骤解决了该问题:

  1. 确保选择了调试而不是发布。
  2. 在“调试配置”中的项目设置中,您应该已经选择了开发人员的个人资料,并且无需指定权利plist。
  3. 在目标下也有相同的设置:目标:,如果没有手动将其更改为上述调试配置。会的。

祝一切顺利。


起作用的原因几乎可以肯定是,您的Debug配置在Entitlements.plist中设置了get-task-allow,而Release 1没有设置-这是为了阻止人们将调试器附加到从App Store获得的副本上(请参阅-还有Kai的以下有关将其设置为yes的答复,以使其正常工作..)
dsmudger 2012年

为我做了。不知何故,将构建设置为“发布”,并且发布配置文件未正确设置。
KPK 2012年

19

这花了我一段时间才能弄清楚。

如果您使用的是发行版/临时/概要文件,则无法通过xcode对其进行测试。您将收到错误:正在调试的程序未在运行。

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


是的,这是我的问题。我没有授权文件,但已将调试版本配置切换到分发配置文件。切换到开发配置文件可以解决所有问题。
vocaro 2011年

1
我希望XCode对此有所了解。根本不明显,当您连接到XCode时无法在设备上测试发行版本。这是一个常见的用例。
user798719 2013年

13

如果出现此类错误,唯一的原因可能是您在Xcode中使用了分发配置文件而不是开发配置文件,或者缺少了Entitlement属性。如果您没有使用Entitlements.plist,则唯一可能的错误是该应用程序正与发行配置文件打包在一起。您可以验证此确认构建日志。要更改此设置,请转到项目的“构建设置”,然后验证“代码签名实体”设置。为了使调试起作用,此设置应该是您当前使用的配置的开发人员资料。

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

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


13

在这个问题上将近2小时!最后,我通过替换

iPhone开发人员

iPhone开发人员:我的开发帐户名

对于调试的CODE_SIGN_IDENTITY

  1. 选择项目目标
  2. 构建设置
  3. 通过“代码符号”搜索
  4. 使用“ iPhone Developer:My Dev Account Name”而不是“ iPhone Developer”修改CODE_SIGN_IDENTITY部分的Debug行。

我不知道它为什么起作用,但是它起作用了!至少对于我来说!


环境:Xcode 5.0(5A1412)。


这也对我有用,谢谢。必须确切地弄清楚要使用的身份,但最终还是喜欢使用某种组合。Xcode 6确实需要针对此类问题的“自动更正”功能,很多整理工作我都没有时间进行!
约翰·康塔里诺

1
只是要补充一点,我做的事情是相似的,但是有所不同-我将配置文件更改为团队配置文件(用于调试),这将代码签名者设置为“自动”-在XCode 5+中,您确实应该选择构建的配置文件,然后根据该配置文件决定要使用的签名者。
Kendall Helmstetter Gelner 2014年

@KendallHelmstetterGelner thx,这可能对其他人有帮助!:D
Kjuly 2014年

还应该添加我更改了“ Debug”构建的团队资料,该资料用于在XCode中从设备上运行(除非您更改方案设置)
Kendall Helmstetter Gelner 2014年

1
这解决了我这个问题的问题,除了用不同的代码签名身份进行重建以外,没有做任何其他事情。谢谢!就我而言,我使用的是临时分发身份。
肖恩·迈克尔·多里安

12

检查您的代码签名部分。确保代码签名为iPhoneDeveloper代码签名。


这确实是我的-由于我的Target上的某些原因,“团队”已更改为“无”-将其更改回排序。干杯
Ralpharoo 2014年

9

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


是的,我已经尝试了很多次,不明白为什么它不能解决问题。如果您仍然想合并testflightapp,这将是最好的方法
owen gerig 2012年

我的运行方案设置为调试。只有这个解决方案为我解决了!谢谢。
Pieter

谢谢,真的帮助我!
Amir Hudani


1

手机上的开发资料可能已过期。

我的开发配置文件已于几天前到期,因此我必须对其进行更新。我在手机上安装了新的配置文件,并在尝试运行应用程序时出现了相同的错误消息。当我查看手机上的配置文件设置时,我注意到过期的配置文件并将其删除。那为我清除了错误。


1

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


1

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

一个快速的谷歌为此引导我到下面列出的文章。从那里,我意识到我没有有效的开发配置文件,因为我的iPhone尚未添加到配置门户和所有其他相关内容。

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

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


0

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


0

我只是改变了我的bundleIdentifier名称,这似乎可以解决问题。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.