【发布时间】:2009-11-13 04:42:16
【问题描述】:
我正在运行 Xcode,试图让我的应用在我的 iphone 上运行。我收到错误消息“正在调试的程序没有运行。”
【问题讨论】:
我正在运行 Xcode,试图让我的应用在我的 iphone 上运行。我收到错误消息“正在调试的程序没有运行。”
【问题讨论】:
解决方案是在我的手机连接到计算机时,使用 Xcode 的管理器窗口从手机中删除我的开发者配置文件,然后重新添加我从 developer.apple.com 重新下载的开发者配置文件。
【讨论】:
仅当我从设备中删除另一个不相关的过期配置文件时,它才对我有用。很奇怪。
【讨论】:
我需要做的就是重新启动我的设备。
【讨论】:
我也曾多次遇到过这个问题,我想我终于(几个月后)完全理解了 Apple 的逻辑。
在开发时,必须使用新的配置文件是很常见的;通常是因为您添加了新的测试人员,或者旧的测试人员过期。因此,您尽职尽责地将新用户的 UDID 添加到您的配置文件中,下载它,然后将其拖到 xcode 中。
然后,您单击项目(或目标)的设置并告诉它使用新的分发配置文件。您可能像我一样使用了“配置”下拉菜单下的“所有配置”。哎呀。
这样做的目的是将您的 DISTRIBUTION 配置文件与所有编译配置相关联。但是,分发配置文件不适用于调试!您必须确保不会在调试配置下覆盖您的 DEVELOPER 配置文件。如果您这样做,只需返回您的项目,在配置下选择“调试”,然后选择适当的 DEVELOPER 配置文件进行编译。
希望对您有所帮助,伙计们。 -VTPete
【讨论】:
为了解决这个问题,我删除了我使用 xcode 部署到应用程序的最后一个应用程序,然后再次构建了我当前的应用程序,它运行良好。
【讨论】:
其他建议对我也不起作用。
在我将 Entitlements.plist 中的“application-identifier”更改为 Provisioning Profile 中的 App Id 后,它开始工作。默认值为 $(AppIdentifierPrefix)$(CFBundleIdentifier),我将其更改为“H2GC99UNHN.au.com.mydomain.myappname”。
如果这些变量正确解析,Xcode 默认值:$(AppIdentifierPrefix)$(CFBundleIdentifier) 将起作用。 CFBundleIdentifier 指的是 Info.plist 中的“Bundle identifier”。 我从来没有发现在哪里设置 AppIdentifierPrefix 应该是 H2GC99UNHN 之类的东西。
要在 Xcode 中找到您的 App ID,请转到 Window 菜单,然后是 Organizer。点击正确的 Ad Hoc 配置文件,App Identifier 是属性之一。
PS:为了让应用程序在我的设备上进行测试,我在 Xcode 中使用“构建并运行”(我不知道更好)。但是运行部分会失败,因为我在我的 Beta 配置中删除了调试符号。让运行部分失败,然后手动重新打开应用程序。
如果签名的应用程序通过应用程序 ID 链接到配置文件并且它是证书,则此错误是有意义的。
【讨论】:
对于那些在尝试上述所有方法后仍然出现此错误的人,以下解决方案只是在我收到错误后为我修复了它。
我进行越狱开发,因此为了绕过强制代码签名,我修改了 /Developer/Platforms/iPhoneOS.platform 下的 XCode 的 Info.plist。
要修复错误,只需还原这些修改:在 Info.plist 文件中用 XCiPhoneOSCodeSignContext 替换所有 XCCodeSignContext 实例。
【讨论】:
您应该检查您使用的证书,记得使用开发者配置在您的设备上进行调试,并确保所有配置都已完成。
【讨论】:
我有两个开发者身份(工作和家庭)并使用相同的设备进行开发。我还在家里使用通配符应用标识符 (xxxxxxxxxx.*),而且我经常使用相同的配置文件构建不同的应用程序。有时当我切换位置时(例如从工作到家),我会收到上述错误。
从设备中删除并重新添加开发人员配置文件,从 Apple 重新加载配置文件并重新启动设备(以各种组合方式)并没有解决我的问题。
在设备上再次启用运行和调试的是:
(我也退出了 Xcode 并做了rm -rf build,但这可能不需要)。
【讨论】:
在我的设备上安装了一个 AdHoc 分布式应用程序后,这发生在我身上。我不得不恢复设备以使调试器再次工作。
【讨论】:
我遇到了同样的问题,但上述方法都不起作用(甚至擦除/恢复设备)。
然后我查看并发现我错误地将我的目标设置为所有以使用临时分发配置文件。不支持调试。
另见iPhone Debugging: How to resolve 'failed to get the task for process'?
【讨论】:
我只需要关闭我的 iPhone 设备并重新启动它。
我按这个顺序试过了:
只有 3. 为我工作。
imp:我的 Provisoning 配置文件有效期将近一年,它们没有理由过期(我什至对它们进行了双重检查以确认 :))。 如果这不起作用,我会检查 - 正如有人正确建议的那样,如果正在使用开发者配置文件 - 就我而言。
【讨论】:
啊,最新版本:我的项目中包含 Core-Plot 框架。我的旧开发配置文件已过期,我下载了新配置文件,并使用最新配置文件更改了项目,但我还是遇到了这个错误。
所以,我需要打开 Core-Plot 框架项目本身,将那里的代码签名更改为最新的配置文件,构建它,回到我原来的项目,重新构建它,然后一切又开始正常工作了。
【讨论】:
我最终删除了我的 Target 来解决这个令人头疼的问题。要添加新的,请右键单击 Target > New Target > Application。
【讨论】: