Xcode 11.2: Unable to install (on device): The executable was signed with invalid entitlements: Code: -402620394

Since updating to Xcode 11.2, I am unable to run any projects on iOS device at all.


In each case, after the project builds, I get a popup that says "Unable to install "EDC_Manager"" (EDC_Manager is my app name.). If you click details, you see this text:


Details


Unable to install "EDC_Manager"

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

);

}

--


I thought it was a problem with my project, so I completed a completely new project in Xcode and built that, but it gets the same error.


The problem occurs in Xcode 11.2.

And it occurs in the 11.2.1 (11B53) GM Seed.

If I revert to Xcode 11.1, everything works normally.


The mac is a 2018 MBP running Catalina 10.15.1, and the iOS device is an 11 Pro Max running iOS 13.2.

I tried other iOS devices also, including one running iOS 12, but the problem persists.


I was hoping this was something fleeting on Apple's side, but it seems to be persisting as an issue.


Thanks for any help or ideas!

Andrew

Replies

I found the solution to this based on some help from Ted Jucevic @ Apple (thanks Ted!).


The problem was the entitlements file was corrupted.


Here it is as 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>


As you can see, right at the top, there is an empty item:


<key></key>

<array>

<string></string>

</array>


This was probably supposed to be a keychain-access-groups entitlement.


Anyway, deleting that bogus entry above resolved it, and I am now able to build-and-run on device again. I have no idea how it initially became corrupted, but I think it had something to do with Xcode 11.2.


Hopefully this info helps someone else too!

Can you clarify what file that XML snippet was found in? I'm not able to track it down, and I don't see that within any plist files.

where is this file found?

It appears that this error can occur for other reasons besides the one indicated by @drewster, so I'll chime in here too.

I got this error trying to run an app on a device using an Ad Hoc profile. After verifying that my Entitlements files were correct, I did some more digging. I have a Notification Service Extension and a Notification Content Extension as part of my app. For reasons, the extensions need to use different provisioning profiles than the main app use. Turns out, the profile used by the app extensions had expired. After visiting the developer portal, re-generating that profile, and downloading it, I was able to build & run on my device as expected.