Xcode 11.2 和 11.2.1 GM SEED -- 无法安装到设备

Posted

技术标签:

【中文标题】Xcode 11.2 和 11.2.1 GM SEED -- 无法安装到设备【英文标题】:Xcode 11.2 and 11.2.1 GM SEED -- Cannot install to device 【发布时间】:2019-11-11 18:10:38 【问题描述】:

我有一个 Xcode Catalyst / SwiftUI 项目,我一直在 Xcode 11.1 下开发。在 11.1 下,一切正常。

当我升级到 Xcode 11.2 时,我开始收到错误:

Unable to Install "App_Name"

(其中“App_Name”是我实际应用的名称。)

如果我点击详细信息,它会显示以下内容:

Details

Unable to install "APP_Name"
Domain: com.apple.dtdevicekit
Code: -402620394
--
The executable was signed with invalid entitlements.
Domain: com.apple.dtdevicekit
Code: -402620394
Failure Reason: The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).
User Info: 
DVTRadarComponentKey = 487927;
"com.apple.dtdevicekit.stacktrace" = (
0 DTDeviceKitBase 0x000000011f0e46e7 DTDKCreateNSError + 109
1 DTDeviceKitBase 0x000000011f0e4de9 DTDK_AMDErrorToNSError + 792
2 DTDeviceKitBase 0x000000011f12456a __90-[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:]_block_invoke + 164
3 DVTFoundation 0x0000000105db9156 DVTInvokeWithStrongOwnership + 73
4 DTDeviceKitBase 0x000000011f124301 -[DTDKMobileDeviceToken installApplicationBundleAtPath:withOptions:andError:withCallback:] + 1589
5 IDEiosSupportCore 0x000000011efaca25 __118-[DVTiOSDevice(DVTiPhoneApplicationInstallation) processAppInstallSet:appUninstallSet:installOptions:completionBlock:]_block_invoke.352 + 4523
6 DVTFoundation 0x0000000105eea3ba __DVT_CALLING_CLIENT_BLOCK__ + 7
7 DVTFoundation 0x0000000105eeba92 __DVTDispatchAsync_block_invoke + 809
8 libdispatch.dylib 0x00007fff6431a583 _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00007fff6431b50e _dispatch_client_callout + 8
10 libdispatch.dylib 0x00007fff64320ace _dispatch_lane_serial_drain + 597
11 libdispatch.dylib 0x00007fff64321452 _dispatch_lane_invoke + 363
12 libdispatch.dylib 0x00007fff6432aa9e _dispatch_workloop_worker_thread + 598
13 libsystem_pthread.dylib 0x00007fff6457471b _pthread_wqthread + 290
14 libsystem_pthread.dylib 0x00007fff6457457b start_wqthread + 15
);

11.2.1 GM SEED (19B88)下结果相同。

如果我回到 11.1,它可以正常工作并在设备上运行。

如果我尝试不同的 iOS 设备,它仍然会失败。

如果我从 Xcode 模板创建一个新的 Catalyst / SwiftUI 项目,它可以在设备上运行而不会出现问题。

请注意,我也看过这个帖子:Xcode 11.2 - Unable to install App file to device?。我将此作为一个单独的问题发布,因为给出的实际失败原因完全不同,因此它们很可能是两个不相关的问题。

构建设备:2018 MacBook Pro 15",运行 ma​​cOS Catalina 版本 10.15.1 (19B88)

Xcode 11.211.2.1 GM SEED (11B53)

iPhone 11 Pro Max 上的 iOS 13.2.2 (也在 iPhone XS Max 和 iPhone X 上测试过其他早期版本的 iOS 13。) em>

我尝试在“自动管理签名”和手动选择之间切换,但我所做的任何更改都没有帮助。

显然 Xcode 11.2 在代码签名方面正在做一些不同的事情,这会破坏这一点,但我不确定是什么。

当然也尝试过删除 DerivedData。

谢谢!

【问题讨论】:

【参考方案1】:

我在 Ted Jucevic @ Apple 的帮助下找到了解决方案(感谢 Ted!)。

问题是权利文件已损坏。

这里是xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key></key>
    <array>
        <string></string>
    </array>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.network.server</key>
    <true/>
    <key>com.apple.security.personal-information.location</key>
    <true/>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
</dict>
</plist>

这是 Xcode 中的样子:

如您所见,在顶部,有一个空项目:

<key></key>
<array>
    <string></string>
</array>

这可能应该是 keychain-access-groups 权利,如 here 所述。

无论如何,删除上面的那个虚假条目解决了它,我现在可以再次在设备上构建和运行。我不知道它最初是如何损坏的,但我认为它与 Xcode 11.2 有关。

希望这些信息也对其他人有所帮助!

【讨论】:

【参考方案2】:

我从设备上卸载了旧版本的应用程序,它可以工作。

【讨论】:

以上是关于Xcode 11.2 和 11.2.1 GM SEED -- 无法安装到设备的主要内容,如果未能解决你的问题,请参考以下文章

Xcode6 GM“代码签名错误”

Xcode 11.2,请谨慎升级!

XCode 6 GM 占用磁盘空间和内存

Xcode 11 GM - 错误:访问构建数据库 - 磁盘 I/O 错误

撤销 Xcode 8 GM 创建的 Provisioning 配置文件

选择主情节提要或 xib 时 Xcode 6 GM 崩溃