user-assigned-device-name entitlement nightmare

In the apple developer portal --> "Certificates, Identifiers & Profiles"

Every time I create a new profile of type "AppStore", the new profile doesn't include the infamous "com.apple.developer.device-information.user-assigned-device-name" key, although this key is correctly selected in the "Identifier" of my app (already did all the validation process for activating this key).

If I create a profile of type "Development", the key is present. But I can't upload to the AppStore with that one, because I'm getting the error:

Provisioning profile failed qualification Profile doesn't include the com.apple.developer.device-information.user-assigned-device-name entitlement.

I'm checking the presence of the key with the recommend TN3125 method.

Also sent a support request but still waiting.

Answered by abesan in 753458022

Finally solved by adding a text field at the login where the user should write the device name. Definitely not an elegant solution but we all know the problems about updating legacy code in a production app, and is the only way to obtain the same device name as before.

For your interest, the problem was that the production entitlement was never granted but in the certificates web there was a bug showing it enabled for production. You can check if an entitlement is really granted with the command line app.

It’s possible that you were granted this entitlement for development but not for distribution. See Finding a Capability’s Distribution Restrictions.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks! But it appears to be enabled for deployment.

I've got the same issue with our cloud managed certificates. The entitlement is included in the provisioning profile for development ("iOS Team Provisioning Profile"), but not in the profile for distribution ("iOS Team Store Provisioning Profile"), despite "App Store" is listed in the capability's distribution restrictions.

As I'm finding here several threads about this topic, is there a general issue with the handling of this entitlement for cloud managed profiles / certificates?

Yesterday, I've written an email to developer (at) email.apple.com, but haven't received an answer yet (honestly, I don't know if this address is supposed to receive mails... I've just answered to the entitlement confirmation mail)

The issue doesn't seem to be related to the cloud managed profiles / certificates: I've just manually created a new provisioning profile with type "App Store", and despite "User Assigned Device Name" is listed in the "Enabled Capabilities", the .mobileprovision file doesn't contain the entitlement. A provisioning profile with type "Ad Hoc" contains the entitlement.

it appears to be enabled for deployment.

So, this is working for me:

  1. In Certificates, Identifiers & Profiles section of the Apple Developer website, select Identifiers on the left.

  2. Find and view the App ID that was granted this capability.

  3. In the Additional Capability tab, click the info button next to the User Assigned Device Name entry.

  4. Verify that App Store is listed there.

  5. Navigate back up to Certificates, Identifiers & Profiles and select Profiles on the left.

  6. Click the add (+) button to start the process of creating a new profile.

  7. Select Distribution > App Store and click Continue.

  8. Select the App ID from step 2 and click Continue.

  9. Select a distribution certificate and click Continue.

  10. If the Additional Entitlements page comes up, click Continue to skip that.

  11. Enter a profile name and click Generate.

  12. Click Download.

  13. In Terminal, run this command:

    % security cms -D -i PPP.mobileprovision | plutil -p -
    {
      …
      "Entitlements" => {
        "application-identifier" => "SKMME9E2Y8.com.example.apple-samplecode.TestDeviceName"
        "beta-reports-active" => 1
        "com.apple.developer.device-information.user-assigned-device-name" => 1
        "com.apple.developer.team-identifier" => "SKMME9E2Y8"
        "com.apple.security.application-groups" => [
        ]
        "get-task-allow" => 0
        "keychain-access-groups" => [
          0 => "SKMME9E2Y8.*"
          1 => "com.apple.token"
        ]
      }
      …
    }
    
  14. Verify that com.apple.developer.device-information.user-assigned-device-name is listed in the entitlements.

Please run through these steps at your end. If you don’t see the entitlement show up in the profile, I recommend that that you seek formal support via Apple > Developer > Contact Us.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Hi, thanks for your help, unfortunately this didn't work, so we are going to spend one "support ticket" ($$$) for trying to solve it. I will reply here when it is fixed.

Hi, I'm facing the same issue! Are there some news about fixing this? We can not release our updated app until this has been solved. @abesan did you found a workaround?

I had the same problem for more than 2 months. Following command does not show the entitlement in the Profile. % security cms -D -i PPP.mobileprovision | plutil -p -

Create tickets in both developer support and code lever support, but they pointed out to each other as both claim it's not their business. It is clearly a bug in Apple somewhere, sadly nobody takes the responsibility of it.

dingwelcome wrote:

Create tickets in both developer support and code lever support, but they pointed out to each other as both claim it's not their business.

Hmmm, that’s not good. Please drop me a line via email. Make sure to reference this thread for context.

[Just dingwelcome, not everyone. I wanna check up on how DTS replied here.]

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer

Finally solved by adding a text field at the login where the user should write the device name. Definitely not an elegant solution but we all know the problems about updating legacy code in a production app, and is the only way to obtain the same device name as before.

For your interest, the problem was that the production entitlement was never granted but in the certificates web there was a bug showing it enabled for production. You can check if an entitlement is really granted with the command line app.

user-assigned-device-name entitlement nightmare
 
 
Q