Xcode 9错误:"iPhone已拒绝启动请求"

174

我正在使用Xcode beta 9 (v4),尝试通过点击“播放”按钮来启动应用程序。我得到了一个“构建成功”的提示,但就在启动之前,Xcode弹出一个消息窗口:

“iPhone拒绝了启动请求。”

Launch request denial error popup

昨天它还能正常工作。模拟器上也可以运行。我已经重启了我的电脑和iPhone,卸载了应用程序,清理了构建。已经没有更多的想法了。


您可以关注 https://dev59.com/5J_ha4cB1Zd3GeqPzXtn - Nikhlesh Bagdiya
那是一个不同的错误,虽然。 - user1988824
2
我也遇到了这个问题。结果发现我不小心改变了方案。尽管我在调试模式下使用开发人员证书,但它被设置为发布构建配置。 - swifthorseman
2
我刚刚重新启动了我的设备。 - Crazyrems
选择“自动管理签名”可以解决这个问题。 - onmyway133
@onmyway133 在XCode 10上,自动管理签名似乎无法解决这个问题。 - blue_zinc
46个回答

227

可能是代码签名问题。确保您使用开发者签名,而不是分发签名。


7
确实需要使用“iOS Development”配置文件来进行开发。 - MoOx
2
我的应用是手动签名的,并且我正在使用 Ad-hoc 供应配置文件进行开发。我希望苹果公司能在编译时提示有关此问题的错误,但你只会在下拉菜单的“不合格”部分中看到一个灰色的区域。如果你不检查这个下拉菜单,你就永远不会知道它。另外,如果你像上面提到的那样禁用调试器,它将可以使用 Ad-hoc 签名。虽然这只是隐藏了这个问题,但并没有解决它。 - HotFudgeSunday
1
[对于任何需要帮助的人] 我正在使用 Fastlane,并通过在钥匙串访问中删除 iPhone Developer: <My Name> (XXXXXX) 证书来解决此问题,因为它会被 Xcode 自动创建(不知道是如何或何时)。当我删除它后,所有错误都立即得到修复。 - gabuchan
请注意,仍然可以使用Nastya Gorban和Rio Weber的解决方案通过“启动时询问”来进行分发签名。 - Cœur
自从上周四以来,我一直遇到这个问题,似乎无法解决。 我尝试了所有方法,更新 Xcode、更新 Mac、启动新项目、删除 iPhone Developer 并重新创建它、使用不同的用户登录/退出、尝试不同的帐户等等,有什么建议吗? - Ryan H
@RyanHolton,请问您正在使用哪个预备配置文件?请使用开发预备配置文件。 - Nikhlesh Bagdiya

208

这个问题发生在使用 Xcode 9.x 或更新版本的时候。

我追踪了这个问题,发现是产品方案中的 "调试可执行文件" 复选框(产品->方案->编辑方案->信息->调试可执行文件复选框)。我 取消勾选 这个选项后,问题就停止出现了(还有其他一些奇怪的问题,例如控制台没有输出)。


19
这个方法有效,但会禁用调试。当在XCode 9.1中出现此问题时,正确的修复方法是前往苹果开发者门户网站创建开发人员配置文件。然后在项目设置中,使用此配置文件(而非自动配置文件)运行即可正常工作!看起来自动配置文件管理效果不佳。我还必须使用AdHoc配置文件上传到HockeyApp。 - Edward B
Edward B - 使用手动配置文件并不能解决我的问题。仍然出现相同的错误 - 拒绝启动。 - Brian M
你试过使用开发配置文件和发布配置文件吗?这也是一个问题(之前只使用自动配置时没有出现过)。 - Edward B
1
我正在使用开发配置文件 - 我是iOS开发的新手,还没有分发任何东西。我应该尝试分发配置文件吗?这肯定是一个或多个错误,而不是这些东西应该工作的方式。当事情一天工作,第二天就不工作时,令人难以置信地沮丧。当模拟器无法执行推送通知并且您无法在实际设备上运行应用程序时,很难调试推送通知! - Brian M
是的,我必须说这样的问题相当普遍。无论是Xcode、iTunesConnect还是操作系统本身,都会出现这种情况。值得庆幸的是有一个庞大的社区和一些解决方法,但总是让人沮丧。如果您已经手动添加了开发配置文件,我不是很确定。如果您没有手动将设备的UDID添加到其中,则也可以尝试这样做,并重新生成配置文件并下载它,这可能会有所帮助。这个问题非常奇怪,但总是值得尝试,这样您就不必禁用调试功能了。 - Edward B
显示剩余3条评论

68

1
我觉得这只是在最新版本的Xcode中出现的问题,直到我更新后才开始发生。 (-v 9.2) - Rio Weber
3
顺便提一句,在你已经尝试了正常运行应用程序后再执行此操作。否则,该应用程序将不在那里“请求”。 - Rio Weber
更简单的解决方法是:从方案中取消勾选“调试可执行文件”。 - Cœur
这对我没有解决问题 :( - Ryan H

36

通过在编辑方案中取消勾选“调试可执行文件”可以解决此问题。

输入图像描述


1
要在Xcode中导航到上述部分,请转到菜单Product > Edit Scheme(Run选项卡)。 - mehdi
2
注意 - 这会禁用调试日志,而调试日志非常有用! - George
禁用调试器有什么作用?你的断点将不再起作用。 - Christoph
无法启动 com.xyz.xyz。 - Anuj

25

在收到“拒绝启动请求”错误后,请执行以下操作:

编辑方案 -> 信息 -> 可执行文件 -> 启动时询问

这对我使用adhoc配置文件有效。


1
更简单的解决方法是:从方案中取消勾选“调试可执行文件”。 - Cœur
无法启动 com.xyz.xyz。 - Anuj

18
对我来说问题在于我使用的是免费的开发者帐户(只是用我的Apple ID登录)。当查看设备日志时,我发现了以下内容(加粗部分):

(RequestDenied); reason: "The request was denied by service delegate (SBMainWorkspace) for reason: Security ("由于代码签名无效、权限不足或其配置文件没有被用户明确信任,因此无法启动{com.my.bundleID}")"

这使我意识到我需要进入“设置”->“通用”->“设备管理”->“{我的Apple ID}”->“信任”。
之后,一切都按预期工作。
在之前版本的iOS中,我的设备会弹出一个对话框,告诉我这是问题所在。也许苹果在iOS 11中删除了它。

这个问题可能在Xcode 9.3中得到解决。现在我可以获得一个更好定义的错误对话框,告诉我接受证书。耶! - Mr Rogers
感谢您解决我的问题。 - Blarzek

17

简单地重启iPhone帮助了我解决问题。


11

我最近遇到了这个问题,并找到了解决方案。以下是修复此问题的步骤:

  1. 点击编辑方案导航选项卡。

输入图像描述

  1. 在运行菜单上单击信息。
  2. 在可执行文件下拉列表中选择“在启动时询问”选项 - 然后关闭并运行一次构建。

输入图像描述

当我遇到这个问题时,这解决了我的问题。

苹果参考


我使用Xcode 9.3工作!对我来说,这是在从自动代码签名切换到手动代码签名时发生的。 - Jan Erik Schlorf

11

对我来说,问题是由于使用Ad hoc配置文件对应用程序进行代码签名。

将代码签名更改为开发人员配置文件后,在Xcode设置的“常规”选项卡中,上述问题得到解决。


9

在将应用部署到iOS 10.3的非模拟iPhone 6s时,使用Xcode 9.0出现了此问题。

在出现这个问题之前,我已经强制退出了应用程序。否则,没有任何更改;所有开发人员签名凭据仍然受信任,并且该应用程序仍然在iPhone的设置中标记为已验证。

解决问题的诀窍是关闭iPhone,然后再次打开它。

查看我的日志,似乎在这个问题发生之前触发了applicationWillTerminate;我认为我强制退出的应用程序实例可能是一些僵尸进程?


1
{btsdaf} - Scott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接