【问题标题】:Xcode 9 error: "iPhone has denied the launch request"Xcode 9 错误:“iPhone 已拒绝启动请求”
【发布时间】:2018-01-07 08:07:01
【问题描述】:

使用 Xcode beta 9 (v4),我试图通过单击“播放”按钮来启动应用程序。我得到“构建成功”,但在启动之前,Xcode 中会出现一条弹出消息:

“iPhone 拒绝了启动请求。”

昨天还可以。它确实在模拟器上工作。我已经重新启动了我的电脑 iPhone,卸载了应用程序,清理了构建。没有想法了。

【问题讨论】:

  • 这是一个不同的错误很难
  • 我也遇到了这个问题。原来我不小心改变了方案。尽管我在调试模式下使用的是开发者证书,但它在构建配置中设置为 Release
  • 我刚刚重启了我的设备
  • 选择Automatically manage signing解决这个问题

标签: ios xcode launching-application


【解决方案1】:

可能是代码符号问题。确保您与开发人员签约,而不是分发。

【讨论】:

  • 您确实需要使用“iOS 开发”配置文件。
  • 我的是手动签名的,我使用的是 Ad-hoc 配置进行开发。我希望 Apple 在构建时提示有关此内容的错误,但您得到的只是配置文件下拉列表中灰色的“无法识别”部分。如果您不检查该下拉菜单,您将永远不会知道。而且,如果您像上面提到的那样禁用调试器,它将与 Ad-hoc 签名一起使用。但是,这只是隐藏了问题,并不能解决问题。
  • [对任何可能有帮助的人] 我正在使用 Fastlane,我通过删除钥匙串访问中的 iPhone Developer: <My Name> (XXXXXX) 证书解决了这个问题,因为它会自动创建(不要'不知道如何也不知道何时)由 Xcode。删除后我的所有错误都会立即得到修复。
  • 请注意,使用 Nastya Gorban 和 Rio Weber 解决方案以及 Ask on Launch .
  • 我从上周四开始就遇到了这个问题,似乎无法解决。我已经尝试了一切,更新 Xcode,更新 Mac,开始一个新项目,删除 iPhone 开发者并让它重新创建,用不同的用户登录/注销,尝试不同的帐户等等,有什么建议吗?
【解决方案2】:

使用 Xcode 9.x 或更新版本时会发生这种情况。

我将此问题追溯到产品方案中的“debug executable”复选框(product->scheme->edit scheme->info->debug executable checkbox)。我取消选中,这不再发生(以及其他几个奇怪的问题 - 控制台中没有输出)。

【讨论】:

  • 这可行,但禁用了调试。在 XCode 9.1 中发生的正确修复是转到 Apple 开发人员门户并创建开发人员配置文件。然后在项目设置中我使用这个(而不是自动的)来运行它,它工作得很好!似乎自动配置文件管理效果不佳。我还必须使用 AdHoc 个人资料上传到 HockeyApp。
  • Edward B - 使用手动配置文件并不能解决我的问题。同样的错误 - 拒绝启动。
  • 嗯,您是否尝试过开发配置文件与分发配置文件?这也是一个问题(以前不是只使用自动)
  • 我正在使用开发配置文件 - 我是 iOS 开发新手,还没有发布任何东西。我应该尝试分发配置文件吗?当然这是一个或多个错误,这不是应该如何工作的吗?当事情一天奏效而第二天却没有时,令人难以置信的沮丧。当模拟器无法执行推送通知并且您无法让您的应用在实际设备上运行时,很难调试推送通知!
  • 是的,我不得不说像这样破坏的东西很常见。 Xcode、iTunesConnect 或操作系统本身。很高兴有一个大社区并且有解决方法,但这总是令人沮丧。如果您已经手动添加了开发配置文件,我不完全确定。如果您没有手动添加您的设备 UDID,您也可以尝试重新生成配置文件并下载它,这可能会有所帮助。这个问题很奇怪,但总是很好尝试,这样您就不必禁用调试。
【解决方案3】:

我有一个解决方法:
如果您将方案更改为“启动时询问”,它会起作用。


在 Xcode 顶部栏中

Product > Scheme > Edit Scheme > 'Info' tab > Executable:  "Ask on Launch"

http://upload-images.jianshu.io/upload_images/663014-d5d182e310052664.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240


这有点烦人,但确实有效。

【讨论】:

  • 我觉得这只是最新版本的 Xcode 中的一个问题,直到我更新才开始发生在我身上。 (-v 9.2)
  • 顺便说一句,只有在您已经尝试以常规方式运行应用程序之后才执行此操作。其他应用程序不会在那里“询问”。
  • 获得相同结果的更简单的解决方法:只需从方案中取消选中“Debug executable”。
  • 这并不能解决我的问题:(
【解决方案4】:

可以通过取消选中 Edit Scheme 中的 Debug Executable 来解决此问题。

【讨论】:

  • 要导航到 XCode 中的上述部分,请转到菜单产品 > 编辑方案(运行选项卡)。
  • 当心 - 这禁用了调试日志,这可能非常有用!
  • 禁用调试器有什么帮助?您的断点将不再起作用
  • 无法启动 com.xyz.xyz
【解决方案5】:

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

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

这适用于我的临时配置文件。

【讨论】:

  • 获得相同结果的更简单的解决方法:只需从方案中取消选中“Debug executable”。
  • 现在无法启动 com.xyz.xyz
【解决方案6】:

我的问题是我使用的是免费的开发者帐户(只需使用我的 Apple ID 登录)。查看我发现的设备日志时(加粗)

(请求被拒绝);原因:“请求被服务代表拒绝 (SBMainWorkspace) 原因:安全性(“无法启动 {com.my.bundleID} 因为它具有无效的代码签名,不足 权利或其个人资料未被明确信任 用户")"

这让我意识到我需要进入Settings -> General -> Device Management -> {My Apple ID} -> Trust

之后,一切都按预期进行。

在以前的 iOS 版本中,我会在设备上遇到一个对话框,告诉我这是问题所在。也许 Apple 将它用于 iOS 11。?

【讨论】:

  • 这可能会在 Xcode 9.3 中修复。我现在得到一个定义更好的错误对话框,告诉我接受证书。耶!
  • 感谢您解决我的问题。
【解决方案7】:

简单的重启 iPhone 帮助了我。

【讨论】:

    【解决方案8】:

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

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

    【讨论】:

      【解决方案9】:

      我最近遇到了这个问题,我找到了解决这个疯狂问题的方法。这是解决此问题的方案问题,请按照以下步骤操作。

      1. 单击顶部导航器选项卡上的编辑方案。

      1. 点击运行菜单上的信息。
      2. 在 Executable 下拉列表中选择“Ask on Launch”选项 -> 然后关闭并运行一次构建。

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

      Apple Reference

      【讨论】:

      • 使用 Xcode 9.3!对我来说,这发生在从自动代码签名切换到手动代码签名时。
      【解决方案10】:

      在部署到带有 iOS 10.3 的非模拟 iPhone 6s 时,使用 Xcode 9.0 得到了这个。

      在此之前,我已强制退出该应用程序。否则,什么都没有改变;所有开发者签名凭据仍然受信任,并且该应用在 iPhone 的设置中仍然标记为已验证。

      解决这个问题的诀窍是关闭 iPhone,然后重新打开。

      查看我的日志,applicationWillTerminate 似乎在这件事发生之前被触发了一段时间;我认为我强制退出的应用程序实例一定是某个僵尸进程?

      【讨论】:

      • 我最终重启了我的手机,它又启动了。强制退出没有帮助。
      【解决方案11】:

      问题是 xcode 'times out' 在几秒钟后。解决方法是编辑方案并要求 xcode '等待'直到启动可执行文件。

      在编辑方案中,选中“等待启动可执行文件”而不是“自动”

      【讨论】:

        【解决方案12】:

        我仔细阅读了所有答案,但它们对我没有帮助。我的解决方案:

        1. 转到 Xcode 首选项,选择帐户 (⌘ + ,)
        2. 选择您的 Apple ID,选择团队并点击管理证书
        3. 在左下角的弹出菜单中单击 + 按钮并选择 iOS 开发,然后单击完成并关闭弹出窗口
        4. 尝试重新启动应用程序,现在应该没问题了。

        【讨论】:

          【解决方案13】:

          这可能会导致使用 Git 切换了错误的分支,请确保您切换的分支不是太旧(因为它可能会导致代码签名问题),如果仍然困扰,请在正确的分支上选择 development Provisioning如果您没有自动管理签名,则在签名(调试)下配置文件

          【讨论】:

            【解决方案14】:

            只需在常规 -> 目标的签名属性中勾选“自动管理签名”。它将为您创建开发配置文件并在设备上运行。

            【讨论】:

              【解决方案15】:

              这些简单的步骤帮助了我。

              1. 从 Mac 中移除已连接的 iPhone、iPad。
              2. 重启您的设备。
              3. 在 Xcode 设置中选择“自动管理签名”。
              4. 重新连接您的 iPhone、iPad。

              【讨论】:

                【解决方案16】:

                我知道这个帖子有很多答案。我已经尝试了其中的每一个,但没有一个对我有用。

                TLDR:

                解决办法如下:

                • 更新到 xcode 11.4.1 或更高版本

                查看Keychain access 中的所有证书,我发现我所有的开发者证书都处于无效状态。而且,我相信,这是这个问题的根本原因。我在这里尝试了解决方案,说删除Apple Worldwide Developer Relations Intermediate Certificate 和所有内容。但是,它没有用。

                然后我遇到了这个link。显然,Apple Worldwide Developer Relations Intermediate certificate (AWDRI) 将在 2023 年到期,开发者证书或 2021 年 1 月 28 日之后颁发的任何其他证书将不会使用该特定的AWDRI 证书。相反,他们使用的是设置为 2030 年到期的更新证书。问题来了,新更新的证书仅适用于 11.4.1 或更高版本的 xcode 版本。而且,我有一个旧版本的 xcode

                当我将我的 xcode 更新到最新版本 - 12.4 时(我不得不在我的机器上腾出空间,更新 macos 等等)问题就消失了。我在Keychain access 上的所有开发人员证书现在都显示有效。而且,我可以在我的 Keychain access 上看到两个 AWDRI 证书,一个在 2023 年到期,另一个在 2030 年到期。

                来自link我分享的描述:

                当前的 Apple Worldwide Developer Relations Certification Intermediate Certificate(中级证书)将于 2023 年 2 月 7 日到期。续订的证书将用于签署 2021 年 1 月 28 日之后为 Apple Developer Programs 颁发的新软件签名证书。其余服务证书将在未来更新,此页面将更新以反映其他证书更改。

                还有更多...

                此要求还会影响 2021 年 1 月 28 日之后由在 Xcode 中拥有个人帐户的开发者以及 Apple Developer Program、Apple Developer Enterprise Program 和 iOS University Developer Program 的成员生成的所有软件签名证书。

                新的 Apple Worldwide Developer Relations 中级证书由 Xcode 11.4.1 或更高版本自动下载,可在证书颁发机构页面下载。通过验证到期日期设置为 2030 来确认安装了正确的中间证书。

                他们还提到了旧版本的问题:

                Xcode 11.4.0 及更早版本可能无法使用新的 Apple 全球开发者关系认证中间证书颁发的签名证书对软件进行签名。如果您无法在构建机器上升级到支持的 macOS 或 Xcode 版本,您可以使用早期的 Xcode 客户端构建和归档您的应用程序,并使用最新版本对其进行签名以进行分发。或者,您可以利用 codesign 工具使用命令行对您的软件进行签名。

                【讨论】:

                • 这似乎给我造成了这个问题。我仍在使用 Xcode 11.0,因为我需要运行 macOS Mojave。正如 HasilT 指出的那样,如果您可以升级到 Xcode 11.4.1 或更高版本,那应该会自动为您解决问题。但如果无法升级,请前往 HasilT 分享的链接,下载苹果更新的“中级证书”。您需要手动将其安装到 Mac 的 Keychain Access 应用程序中。我通过“文件”>“导入项目”将它添加到该应用程序的“登录”钥匙串中。这为我解决了问题。
                【解决方案17】:

                我在 Xcode 9.1 上遇到了这个问题

                场景:我检查了设备的“通过网络连接”选项。并尝试在连接了 USB 电缆的情况下将应用程序运行到此设备。

                修复:只需拔下 USB 数据线即可运行。

                【讨论】:

                  【解决方案18】:

                  我已经尝试了所有对我没有用的答案, 问题来自 Xcode 本身,与配置文件和证书无关:

                  产品 > 方案 > 编辑方案

                  在运行 (Section) / info (tab) [选择] Release 而不是 debug 作为 Build Configuration强>如下:

                  这是自 Xcode 10.1 以来的回归


                  配置:Xcode 版本 10.1 (10B61) Iphone X / IOS 12.1.4

                  【讨论】:

                  • 我得出了或多或少相同的结论。我已经使用不同的帐户进行了尝试,更新了所有证书并逐字尝试了针对此问题的所有答案。结果总是一样的,只是行不通。我的设备:macOS Mojave,版本 10.14.3,带有 iOS 12.1.4 的 iPhone SE,Xcode 10.1 (10B61)
                  • 有了这个技巧,我可以在 iphone 上启动应用程序,但看起来应用程序正在部分工作,并且一旦我按下某个按钮就会崩溃
                  • 自从迁移到 10.14.4 (18E226) 后一切正常
                  【解决方案19】:

                  我有同样的问题。它是 Xcode 9.1 中的一个错误。现在有一个技巧可以让它工作。锁定您的手机。运行代码。 Xcode 将要求解锁 iPhone。

                  【讨论】:

                    【解决方案20】:

                    我刚刚使用 Apple Configurator 清除了配置文件,重新启动了 iDevice 并再次照常工作。

                    【讨论】:

                      【解决方案21】:

                      这是 Xcode 中的一个间歇性错误 - 我刚刚停止并启动了所有设备,它神奇地工作了(在搞砸了 1/2 小时后) 我已经在一夜之间将 MacOS 升级到了 10.13.04,这显然让我有些不安! Xcode 9.3、iOS 11.3 watchOS 4.3

                      【讨论】:

                        【解决方案22】:

                        让我告诉你一个解决我的问题的解决方法:

                        • 第 1 步:Windows > 设备和模拟器。
                        • 第 2 步:取消配对设备。
                        • 第 3 步:重新连接设备和信任。
                        • 步骤 4:运行应用程序。宾果游戏。

                        【讨论】:

                          【解决方案23】:

                          对我而言,此问题与手动安装的企业证书有关,并且必须将其用于开发和发布方案。在允许启动应用程序之前,我必须信任设备上的证书,但它永远不会启动,因为我不断收到被拒绝的消息。最终,编辑方案并将其设置为在调试之前等待附加应用程序就成功了。

                          【讨论】:

                            【解决方案24】:

                            在Capabilities中打开App Groups,等待App...生效,然后关闭App Groups,就成功了:

                            【讨论】:

                            • 成功了!重建损坏的配置文件的那个东西。我刚刚发现并来这里发布这个作为答案,但你在这个问题上打败了我?
                            • 不知道在哪里可以找到应用组!
                            【解决方案25】:

                            在看到网上给出的所有解决方案后,我终于找到了一个,下面是这些:

                            • 发生错误是因为它使 Runner 对使用什么配置文件感到困惑。
                            • 当您在 Xcode > Targets > Signing 的配置文件中添加新帐户时,您最常遇到此错误。
                            • 您可以通过在一个配置文件之前使用来消除此错误。
                            • 无需创建新用户。
                            • 或者您可以使用您在 iPhone 的个人资料中使用的帐户登录(我这样做了!)

                            快乐的日子:)

                            【讨论】:

                              【解决方案26】:

                              如果您在 2019 年 3 月 20 日的前几天出现此问题,则很可能与颁发了错误的代码签名证书有关。在这种情况下,您应该能够通过重新创建代码签名证书来解决它。 This SO 问题已经有一个answer that explains you how to do so

                              【讨论】:

                                【解决方案27】:

                                我不确定这是一个修复程序,还是只是另一种解决方法,但从我的设备上卸载应用程序会有所帮助。我仍然不确定是什么原因造成的,但 @MrRogers answer 帮我弄清楚了。

                                【讨论】:

                                  【解决方案28】:

                                  对我来说,问题出现是因为我使用Distribution Provisioning Profile 进行调试。

                                  我们无法使用分发配置文件进行调试,将其更改为 Development Provisioning Profile 修复了该问题。

                                  步骤:(Xcode 11.2.1)

                                  1. 选择项目,在TARGETS下,选择正确的目标。
                                  2. 切换到Signing & Capabilities
                                  3. Singing 部分下,将 Provisioning Profile 更改为 Development profile 您只需检查 Automatically manage signing

                                  【讨论】:

                                    【解决方案29】:

                                    其他答案均无效 -

                                    Xcode 11+

                                    1. 单击顶部导航器选项卡上的编辑方案。
                                    2. 启动选项选择等待可执行文件启动

                                    您必须在您的设备上手动运行该应用程序,但这将使调试器保持连接状态,因为其他一些解决方案调试器会被分离。

                                    【讨论】:

                                    • 它适用于任一启动选项,解决方案包括在 Xcode 构建方案中禁用“调试可执行文件”。
                                    【解决方案30】:

                                    今天,我也遇到了这个问题。这是我的解决方法。 Xcode 9.0,iPhone 6s,使用我的帐户自动管理签名。 当我选择“iPhone 6s”时,发现iPhone 6s后面有一个logo 这是Xcode 9.0的新功能,可以在iPhone上运行应用程序,无需字符串连接计算机(iPhone和Mac必须连接同一个网络)。 所以,我尝试改变这种连接方式。 打开“设备和模拟器”->取消选择“通过网络连接” 然后,我清理、重建并运行我的项目。它有效! 如果这个方法能帮到你,我会很高兴。

                                    【讨论】:

                                    • 你很幸运。这对我的“拒绝启动”问题没有影响。我宁愿幸运也不愿聪明。
                                    • 祝你好运基于smart。
                                    猜你喜欢
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2019-02-24
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多