The executable was signed with invalid entitlements. (0xE8008016)

Update 2014/03/12 This QuickLook plugin is a great way of seeing what’s in your provisioning profiles: https://github.com/chockenberry/Provisioning

The code signing for iPhone apps can drive me batty sometimes.  It rarely works first time for me and the errors you get are completely unhelpful.  It doesn’t help that for a variety of reasons I’ve 3 developer profiles on my work machine.

Today, I’ve been getting the following:

The executable was signed with invalid entitlements.

The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.

(0xE8008016)

The very least they could do here is list which entitlements are not matching.  To figure this out, you need to view the provisioning profile and find the Entitlements key.  It’ll look something like this:

<key>Entitlements</key>        
<dict>                
    <key>application-identifier</key>               
    <string>7X895L3TS6.com.your.app</string>                
    <key>aps-environment</key>                
    <string>development</string>                
    <key>get-task-allow</key>                
    <true/>               
    <key>keychain-access-groups</key>                
    <array>                        
        <string>7X895L3TS6.*</string>                
    </array>       
</dict>

You need to make sure the contents of your Entitlements.plist match these exactly.  After you’ve made your change, clean your project and rebuild.  Your app should now install and run on your device.

23 thoughts on “The executable was signed with invalid entitlements. (0xE8008016)

  1. Jim H.

    Question, your provisioning profile example has a value of true for get-task-allow. My provision shows this as false. How did you create a provisioning profile where this is true?

    When I set my entitlements’ get-task-allow to true, it conflicts with the profile. If I set it to false I get an “Error Starting Executable”.

    Its really bumming me out :/

    Any help would be GREATLY appreciated!

    Reply
    1. Jim H.

      Nevermind! Figured it out. The development profile has get-task-allow set to true. I had to use that to test it.

      Thanks anyway! :D

      Reply
  2. David Gurney

    My project doesn’t have an entitlements.plist. Is this still used in Xcode 4? I have an (app name).entitlements file for iCloud and push, but that’s it. And I’ve been able to build onto the phone (and submit to the store) before.

    Reply
    1. Karl Monaghan Post author

      It is still used and you’ll have to create it yourself. Once it’s created, add it to your project settings. You’ll find where it goes by putting ‘Entitlements’ in the search box.

      Reply
      1. Fallout2man

        This doesn’t really seem to answer the core of the questions of the parent. Which were: “My App no longer needs an explicitly created entitlements.plist file and I am getting this error. What does this indicate? Why do I need it now? I was told it was no longer necessary. Was the file repurposed? What does it do now as opposed to then?”

        Which would actually resolve the state of confusion created by mixed messages being delivered on the necessity of the Entitlements.plist file. Just trying to add a little clarity. ^_^

        Reply
  3. ashokq

    The executable was signed with invalid entitlements.

    The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.

    (0xE8008016)

    I many changes in entitlements.entitlement but same error. I create app id, ad hoc provisioning profile and run on device and throw above error.
    Please help me.

    Reply
  4. Sagar Thakar

    Hi Karl,

    I already have a copy on apps store, and now I have a new client who wants the same apps but with his logo. So I have just copied the same working copy and saved it in this new client’s name, I have just changed the launch icon and nothing else all other images are the same old ones. I created new provisioning profile, but when I go to submit it I get this stupid message “the executable was signed with invalid entitlements” I have tried creating new profile over and over but getting the same error message please help me on this as I am loosing patience and will also loose my client.

    Thanks for all your help

    Sagar

    Reply
    1. Karl Monaghan Post author

      Have you created a new bundle id? If not you need to do that and change the value in the info.plist.

      Does the app have push notifications or iClould functionality? If it does, check that the new provisioning profile has them enabled.

      Reply
      1. Sagar Thakar

        Hello Karl,

        Thanks for your reply !!

        1. Yes I created new bundle id. here is my bundle id
        biz.techview.vervedp

        the value in the info.plist has the same bundle identifier.

        2. I do not have icloud functionality or push notifications enabled.

        I wish to provide you some indepth details on the issue I am facing
        please read below -

        1. I am able to run the app using the developer profile, but it fails
        when i use distributor provisioning profile.

        2. In your very first comment you provided the Entitlements.plist
        file we used the same file and used the same values, but still it fails.

        3. I am using XCODE 4.2

        4. My earlier 2 apps which are on market place never faced this
        problem. This 3rd apps is the exact same copy of the first 2 apps
        I just have changed the launch icon nothing else.

        This error is eating me up, please help me on this…..

        Appreciate all your help

        Thanks

        Sagar

        Reply
        1. Karl Monaghan Post author

          Did you remember to change the cert you are using to sign the app with? there’s 2 places this can be set – in the Project settings and in the Target settings. I’ve found before that even after I change the code signing cert in the Project settings, it was still set to the old cert in the Target settings.

          Reply
          1. Sagar Thakar

            Hello Karl,

            Thanks for your reply !!

            1. I already set my code signing cert in both places. The same cert I am using in my
            project –> Build settings
            and
            Target–> Build settings..

            2. The valid architecture was set to armv6.

            3. There is Entitlements.plist file in
            Targets ->build settings ->Code sigining Entitlements with only one row as “Can not be debugged”set to “NO”.

            But its not working.

            Thanks

            Sagar

          2. Karl Monaghan Post author

            Could you post the contents of you info.plist, entitlements.plist and the entitlements section of the provisioning profile?

          3. Zack Morris

            Thank you, I was tearing my hair out and was aware that project/target settings could get out of sync but somehow forgot to double check this time. I clicked the bold provisioning entries in target settings and deleted them. Now they inherit from the project settings and it finally “just worked”.

  5. Sagar Thakar

    Thanks for your reply !!

    1.Here is my entitlements.plist file -

    get-task-allow

    ————————————————-

    2.Here is my info.plist file –

    CFBundleDevelopmentRegion
    English
    CFBundleDisplayName
    Verve Vip
    CFBundleExecutable
    ${EXECUTABLE_NAME}
    CFBundleIconFile

    CFBundleIconFiles

    Verve_AppIcon_114px.png
    114.png
    57-new.png
    114-new.png
    Verve 114.png

    CFBundleIcons

    CFBundlePrimaryIcon

    CFBundleIconFiles

    Verve_AppIcon_114px.png
    114.png
    57-new.png
    114-new.png
    Verve 114.png

    UIPrerenderedIcon

    CFBundleIdentifier
    biz.techview.vervedp
    CFBundleInfoDictionaryVersion
    6.0
    CFBundleName
    Verve Vip
    CFBundlePackageType
    APPL
    CFBundleShortVersionString
    1.0
    CFBundleSignature
    ????
    CFBundleURLTypes

    CFBundleTypeRole
    Viewer
    CFBundleURLIconFile
    icon@2x
    CFBundleURLName
    biz.techview.vervedp
    CFBundleURLSchemes

    Verve Vip

    CFBundleVersion
    1.0
    LSApplicationCategoryType
    public.app-category.business
    LSRequiresIPhoneOS

    NSHumanReadableCopyright
    Verve Vip Inc.
    NSMainNibFile
    MainWindow
    UIRequiredDeviceCapabilities

    still-camera

    UIStatusBarHidden

    UISupportedInterfaceOrientations

    Reply
  6. Sagar Thakar

    <!–

    I think the html/xml like tags in my plist file are disappeared after I post the content, so I am trying to post my contents again within xml comment.

    1.Here is my info.plist file

    CFBundleDevelopmentRegion
    English
    CFBundleDisplayName
    Verve Vip
    CFBundleExecutable
    ${EXECUTABLE_NAME}
    CFBundleIconFile

    CFBundleIconFiles

    Verve_AppIcon_114px.png
    114.png
    57-new.png
    114-new.png
    Verve 114.png

    CFBundleIcons

    CFBundlePrimaryIcon

    CFBundleIconFiles

    Verve_AppIcon_114px.png
    114.png
    57-new.png
    114-new.png
    Verve 114.png

    UIPrerenderedIcon

    CFBundleIdentifier
    biz.techview.vervedp
    CFBundleInfoDictionaryVersion
    6.0
    CFBundleName
    Verve Vip
    CFBundlePackageType
    APPL
    CFBundleShortVersionString
    1.0
    CFBundleSignature
    ????
    CFBundleURLTypes

    CFBundleTypeRole
    Viewer
    CFBundleURLIconFile
    icon@2x
    CFBundleURLName
    biz.techview.vervedp
    CFBundleURLSchemes

    Verve Vip

    CFBundleVersion
    1.0
    LSApplicationCategoryType
    public.app-category.business
    LSRequiresIPhoneOS

    NSHumanReadableCopyright
    Verve Vip Inc.
    NSMainNibFile
    MainWindow
    UIRequiredDeviceCapabilities

    still-camera

    UIStatusBarHidden

    UISupportedInterfaceOrientations

    –>

    <!–

    2.Here is my Entitlements.plist file

    get-task-allow

    –>

    Reply
  7. Pingback: Invalid IPA: The keychain-access-group in the embedded.mobileprovision and your binary don’t match. | Karl Monaghan's Blog

  8. Chris

    Thank you!

    I was pulling my hair out, and I wouldn’t have thought to examine the provisioning profile to see the values it was expecting.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>