iOS 12 iPad被拒绝启动请求-Xcode

34

我已经更新了一个应用程序超过5年的时间,从来没有遇到问题,直到昨天。

我将iPad升级到iOS 12,但每次尝试运行应用时,都会收到以下消息:

iPad已拒绝启动请求

我在其他安装有iOS 11的物理设备和模拟器上测试了该应用,只有使用iOS 12的设备才会出现此错误。

我尝试解决这个问题的方法有:

  • 重新生成我的证书在苹果开发者页面。
  • 将我的方案从“调试配置”更改为“发布”,并检查和取消检查“调试可执行文件”。
  • 重启我的Mac和iPad
  • 启用和禁用“等待可执行文件启动”

以及此线程的每个解决方案:Xcode 9 error: "iPhone has denied the launch request"

尝试了这些替代方法后,问题仅存在于使用iOS 12的设备中。

有人知道如何解决吗?

更新 我对我的应用进行了调试,这是整个日志:

predeterminado  10:33:00.516648 -0600   trustd  cert[0]: MissingIntermediate =(leaf)[force]> 0
predeterminado  10:33:00.516722 -0600   trustd  cert[0]: NonEmptySubject =(path)[]> 0
predeterminado  10:33:00.521320 -0600   SpringBoard [com.mycompany.myapp] Generating image data for snapshot: <XBApplicationSnapshot: 0x1115c11f0; identifier: 5E831360-7FEE-4255-A6FB-08712EF1D226; launchInterfaceIdentifier: __from_UILaunchStoryboardName__; contentType: GeneratedDefault> {
    creationDate = 20 de septiembre de 2018, 10:33:00 a. m. GMT-6;
    keepsImageAccessUntilExpiration = NO;
    hasGenerationContext = NO;
    context = {
        contentType = GeneratedDefault;
        fullScreen = YES;
        referenceSize = {1024, 1366};
        interfaceOrientation = LandscapeLeft;
        additionalContext = {
            statusBarSettings = <XBStatusBarSettings: 0x282f43d00; hidden: NO; style: 0x0; backgroundActivityEnabled: NO>;
        }
    }
    imageContext = {
        scale = 2.0;
        opaque = YES;
        fileRelativeLocation = none;
    }
}
predeterminado  10:33:00.585893 -0600   SpringBoard com.mycompany.myapp:10:11:3:1:Application replaced
predeterminado  10:33:00.592674 -0600   SpringBoard [com.mycompany.myapp] Application installed using default data provider
predeterminado  10:33:00.638304 -0600   dasd    com.apple.CFNetwork-cc-87-19005-Task <6A4245D9-BABF-4974-899B-B744DCB219AE>.<com.apple.cloudkit.cloudd>.<route=usmia-edge.icloud-content.com:outOfProcess=T:allowExpensive=T:powerNap=F:adaptive=T:app=com.apple.mobileslideshow:2app=com.apple.mobileslideshow.PhotosMessagesApp:disc=T:retry=F:pool=com.apple.cloudkit.BackgroundConnectionPool:uuid:C3F50637-0E71-4FCD-A8B5-DB01E2F3D518>.<1>:9D4C2B:[
    {name: ApplicationPolicy, policyWeight: 5.000, response: {Decision: Can Proceed, Score: 0.31}}
    {name: DeviceActivityPolicy, policyWeight: 10.000, response: {Decision: Can Proceed, Score: 0.60}}
 ] sumScores:58.471249, denominator:65.910000, FinalDecision: Can Proceed FinalScore: 0.887138}
predeterminado  10:33:00.662238 -0600   SpringBoard [com.mycompany.myapp] Snapshot data for <XBApplicationSnapshot: 0x1115c11f0; …08712EF1D226> written to file: /private/var/mobile/Containers/Data/Application/1DB50DD3-CF52-4498-854F-C0939D28ECC0/Library/Caches/Snapshots/com.mycompany.myapp/5E831360-7FEE-4255-A6FB-08712EF1D226@2x.ktx
predeterminado  10:33:00.666489 -0600   trustd  cert[0]: MissingIntermediate =(leaf)[force]> 0
predeterminado  10:33:00.687764 -0600   TVRemoteConnectionService   XPC: Recieved an application registered LaunchEvent
predeterminado  10:33:00.909692 -0600   trustd  cert[0]: MissingIntermediate =(leaf)[force]> 0
predeterminado  10:33:00.910738 -0600   trustd  cert[0]: SubjectCommonName =(leaf)[]> 0
predeterminado  10:33:00.910872 -0600   trustd  cert[0]: LeafMarkerOid =(leaf)[]> 0
predeterminado  10:33:00.912183 -0600   trustd  cert[0]: MissingIntermediate =(leaf)[force]> 0
predeterminado  10:33:00.912253 -0600   trustd  cert[0]: AnchorApple =(path)[]> 0
predeterminado  10:33:00.912321 -0600   trustd  cert[0]: ChainLength =(path)[]> 0
predeterminado  10:33:00.912399 -0600   trustd  cert[0]: IssuerCommonName =(path)[]> 0
predeterminado  10:33:00.943350 -0600   trustd  cert[0]: MissingIntermediate =(leaf)[force]> 0
predeterminado  10:33:00.943416 -0600   trustd  cert[0]: NonEmptySubject =(path)[]> 0
predeterminado  10:33:00.972795 -0600   trustd  cert[1]: AnchorTrusted =(leaf)[force]> 0

使用Xcode在iOS设备上运行应用程序是否有问题?您是否使用的是Xcode 10? - rmaddy
1
@Jerant Elias Serrano 有什么进展吗?我也遇到了同样的问题,我的所有设备都处于相同的状态。其中包括2台iPhone和2台iPad,它们全部运行iOS12系统。 - modus
当我有太多的打印语句并且不得不非正常地中止时,我遇到了这个问题。在这种情况下,通过重新启动我的手机(并在再次尝试之前删除有问题的打印)来解决问题。 - Victor Engel
23个回答

30

5
这是我唯一行之有效的解决方案...谢谢! - ace_ventura
5
哇,这对我有用,让我感到难以置信的是,简单的iOS开发有时会出现那么多漏洞。 - bbeckford
14
无实际解决方案,如果您以这种方式解决此问题,则无法使用设备调试您的应用程序。 - Nijat2018
2
这是一个非常糟糕的解决方案,因为这将禁用应用程序的调试功能,导致断点和崩溃报告等功能停止工作。 - Sarthak Mishra

23

我花了三天时间解决这个问题。我找到了两种解决方案,您可以选择其中任意一种。

解决方案1:

打开系统偏好设置用户与群组添加用户帐户(创建新用户成功)。

输入图片说明

解决方案2:打开钥匙串访问 -> 选择系统、所有项目 -> 删除证书“Apple Worldwide Developer Relations Certification Authority”。

输入图片说明


14
方案2对我有效,但在此之后我还删除了“登录”钥匙串中的内容,并在我的项目中执行了以下步骤:Product -> Scheme -> Edit Scheme -> Info -> Executable -> Ask on Launch。 - plocks
2
谢谢 @plocks!我也得按照你描述的去做。 - CodeMonkey
3
另一个令人憎恶的Xcode签名错误……是的,确认(2)!非常感谢!否则今天会很沮丧。我想补充一点:在“Product”->“Scheme”->“Edit Scheme”->“Info”,可将“可执行文件”保留在应用程序中,但必须取消选择“调试可执行文件”,然后就可以正常工作了。 - Majakovskij
5
方案2有效,在遵循@plocks的建议后也成功了。我只想说,苹果和Xcode真的让我对编写iOS应用程序失去了兴趣。 - Gavin
12
禁用“调试可执行文件”会起作用,但是无用,不是真正的解决方案,因为你不能使用设备进行调试! - Nijat2018
显示剩余10条评论

16
在我的情况下,iOS设备上的开发者账户尚未获得批准。我必须在“设置”应用程序中手动完成以下步骤:
  • 打开设置应用程序
  • 进入通用
  • 进入描述文件与设备管理
  • 选择相关的描述文件并信任它

6
救命稻草! - Rob B
1
真的是救命稻草!❤️ - Ferrakkem Bhuiyan
1
这在将应用从一个开发者账户切换到另一个账户的情况下起作用了,谢谢! - Daniel Schuler

15
我想对答案进行更详细的阐述,根据我在解决这个问题时所经历和学到的内容,为那些像我一样不熟悉Xcode和iOS开发的人提供更多细节。就像我的情况一样,我只需要尽快让它运行起来。 我的情况是,我有一个运行在几台iPad上的Ionic 3 iOS应用程序,作为欢迎台签到亭的本地非营利组织,因此这个应用程序不需要在商店上公开。这个应用程序在几天后崩溃了,经过数周的研究后,我发现是我的苹果开发者帐户出了问题,而不是bug或内存泄漏。
因此,我重新设置了我的苹果开发者帐户,并创建了新的和更新的签名证书和Ad-hoc预配配置文件,并将这些iPad添加到其中,以便它们不再崩溃。我开始在这些设备上使用我的全新证书和配置文件运行应用程序...然后花了几个小时来解决这个"iPad已拒绝启动请求"的问题。
以下是我学到的内容:

首先尝试编辑您的运行方案。

如果应用程序已经存在于目标设备上,那么只需将可执行文件设置为"在启动时询问",方法是转到产品方案编辑方案...

Product → Scheme → Edit Scheme...

确保左侧选择了“运行”,然后在右侧打开可执行文件的选项,在信息选项卡下选择“启动时询问”,然后关闭

Select "Ask on Launch"

当您再次尝试运行应用程序时,将弹出一个包含目标设备上可用应用程序的弹出窗口,您需要选择您的“appName.app”,然后单击“运行”。

Select your "appName.app"

如果您没有看到“appName.app”文件,那么这是一次全新的安装,请点击取消

Don't see your "appName.app"

如果这是全新安装,您需要确保可执行文件设置为您的“appName.app”。它会拒绝您第一次运行尝试,但它会在设备上安装应用程序。然后返回并将可执行文件重置为“启动时询问”,然后再次运行。现在“appName.app”应该在列表中。

如果编辑您的运行方案无法使其运行……

我建议您接下来查看您的Apple开发人员证书,并确保它们符合要求并且是最新的。
通过单击签名配置文件旁边的信息圆形(i)图标快速查看。

Enter image description here

在这里管理您的证书... https://developer.apple.com/account/ios/certificate

您也可以让Xcode下载您的证书,或者只需前往Xcode → 偏好设置查看它们的列表:

Xcode → Preferences

然后确保你在{{账户}}选项卡上,在左侧选择你的Apple ID,然后在右下方查找下载或管理/查看你的证书的能力...

Enter image description here

如果您的证书有任何更改/更新,请尝试再次运行应用程序,然后尝试编辑运行方案,而不是费力地创建新用户帐户。

如果所有其他方法都失败了......

您可以尝试在计算机上创建一个新用户帐户,并通过设置该新帐户来使用所有相同的证书。但这超出了我想要在此详细介绍的范围。我也建议这是最后的选择。

Xcode 10:iPhone已拒绝启动请求

祝你好运!

这个帮了我很多,可惜开发iOS应用程序要靠“好运” :) - Lukasz 'Severiaan' Grela
1
那么,每次我都必须选择一个应用程序名称来进行调试吗?在过去的5年中,我从未遇到过这种情况。但这个问题是从前天开始的,太奇怪了。我认为这不是真正的解决方案,如果你像这样解决问题,就无法使用真实设备进行调试。 - Nijat2018
救命稻草!!谢谢啊伙计!! - hashcoder

8

针对Xcode 10.v的操作:

1 -> 删除 keychain 中所有开发者证书。

2 -> 从Xcode中删除AppleID。

3 -> 重新启动Xcode。

4 -> 再次向Xcode添加一个AppleID(与之前相同即可)。

5 -> 再次重启Xcode,最好重新启动MAC。


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

输入图像描述


9
这并不是真正的解决方案,如果你像这样解决了这个问题,就无法使用设备调试你的应用程序。 - Nijat2018
这是一个非常糟糕的解决方案,因为这将禁用应用程序的调试功能,导致断点和崩溃报告等功能停止工作。 - Sarthak Mishra
我知道这不是真正的解决方案。我认为问题与证书或配置文件有关,但不确定。 - Binshad
我正在客户的 iOS 应用上测试功能,目前不需要调试;这个解决方案帮了我个大忙,谢谢。 - Andi

4

在我的情况下,使用指定的证书无法启动iOS12+上的项目,但其他iOS版本可以。

我尝试了其他评论中提供的解决方案,但都失败了。最终,我发现问题出在钥匙串中证书的信任设置上。

我的解决方案:

  1. 删除钥匙串中与您的项目相关的证书:钥匙串 -> 系统 -> 所有项目 -> 您的项目相关证书
  2. 重新安装证书
  3. 重新启动Xcode

在这里输入图片描述

希望这能节省您的时间。


删除钥匙串中的所有开发人员证书 -> 从Xcode中删除AppleID -> 重新启动Xcode。这些是我遵循的确切步骤,以解决我的问题。谢谢。 - gamal
我必须在“session”(可能是KeyChain英文版中的“login”)中删除相同的证书。谢谢帮助 :) - Timothé Gauguet

2

ProductSchemeEdit SchemeInfo → *可执行文件** 编辑为 启动时询问 可以解决问题。但是,当将方案重置为其原始设置时,应用程序未能启动。

为了寻找更持久的解决方案,我按照上述方法删除了开发者证书(解决方案2:打开 钥匙串访问 → 选择 系统,所有项目 → 删除证书 苹果全球开发者关系认证机构),但是当我重新启动 Xcode 时,我的应用程序在设备上无法启动,出现完全相同的情况。

以下方法似乎已解决该问题:

  1. 从 Xcode 首选项中删除 Apple ID;
  2. 重新启动 Xcode 以添加 Apple ID;
  3. 在 Xcode 中使用 管理证书 按钮,在 首选项帐户Apple IDs 中添加新的 iOS 开发证书;
  4. 退出 Xcode;
  5. 重新启动 Xcode 和应用程序。

2
这里有一个解决方案,不需要编辑方案,因此可以像往常一样使用断点。

在钥匙串访问中搜索关键词“developer”,我发现我的iPhone证书被标记为“无效”的红色。 下面是我所做的:

  1. 我打开了钥匙串访问并搜索了关键词“developer”。
  2. 我删除了“iPhone Developer”证书(如果您遇到其他设备问题,请确保删除正确的证书)。
  3. 然后我也删除了“Apple Worldwide Developer Relations Certification Authority”和“Developer ID Certification Authority”。

之后一切都像往常一样工作,我已经能够在我的iPhone上启动应用程序。

YouTube上还有一个视频展示了这种方法。


顺便说一句,步骤1和2对我来说已经足够解决问题了。谢谢你的回答 ;) - Paulo Mattos
这个YouTube视频也推荐了类似的方法(今天发布):https://www.youtube.com/watch?v=j1ztHZ8v474。 - Paulo Mattos
@PauloMattos 谢谢,我已经把它加入了我的回答。 - Lorenzo Santini
谢谢。这对我很有效。感谢视频。 - user7367398

2
我通过在 Xcode 11.0 中的 .workspace 项目下的签名功能中勾选 自动管理签名 来解决了这个问题。这是一个 Cordova 项目。仅供参考。

1
我找到了相同的方法,它也对我起作用了。我在发布我的答案后发现了你的答案。致敬。 - Rakshitha Muranga Rodrigo

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