我有一个在 Xcode 11.1 下开发的 Xcode Catalyst / SwiftUI 项目。在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”,运行 macOS Catalina版本10.15.1(19B88 )
Xcode 11.2 和 11.2.1 GM SEED(11B53)
iPhone 11 Pro Max上的iOS 13.2.2 (也已在iPhone XS Max和iPhone X以及其他早期版本的 iOS 13 上进行了测试。)
我尝试在“自动管理签名” 和手动选择之间进行切换,但是我所做的任何更改都无济于事。
很明显, Xcode 11.2 在代码签名方面做了不同的事情,打破了这一点,但是我不确定是什么。
当然也尝试删除DerivedData。
谢谢!
答案 0 :(得分: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 有关。
希望此信息对其他人也有帮助!
答案 1 :(得分:0)
我从设备上卸载了旧版本的应用程序,并且运行正常。