Search code examples
macosicloudmac-app-store

Invalid Mac App Store Validation using iCloud Entitlements


I've been trying to simply validate an app for the Mac App Store. I was able to submit the iOS version without a hitch.

At this point in time i've configure the App ID in the dev portal to a unique iCloud identifier, so that eliminates the possibility that this is a shared ICID problem (iCloud ID).

I've recreated certificates, App ID, iCloud container, and distribution provisioning profiles.

*After days of troubleshooting, i've narrowed the issue down. If I assign the iCloud container to the App ID, validation fails. If I un-assign it, validation passes.

I have opened several tickets with Apple over the course of the week, but I haven't had a response so i'm hoping SO can help.

The errors reported by the validation tool: enter image description here

My App ID: com.proj-build.cocoa-notes
My iCloud Container ID: iCloud.com.proj-build.cocoa-notes

  • The prefixed iCloud in the iCloud Container ID confuses me. My iOS app does not specify the prefix in the entitlements file (using a different container ID) and it was validated. Prefix or no prefix on Mac does not work.

Any ideas what I could be doing wrong?

Entitlements configuration below

<?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>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
        <string>$(TeamIdentifierPrefix)com.proj-build.cocoa-notes</string>
    </array>
    <key>com.apple.developer.ubiquity-kvstore-identifier</key>
    <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.files.bookmarks.app-scope</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.print</key>
    <true/>
</dict>
</plist>


Solution

  • It looks like your app ID and provisioning profile are misconfigured. The iCloud containers (those that match iCloud.*) are a Mac OS X 10.10 Yosemite feature. You'll need to log in to the developer center and remove that, but keep the 10.9 (and previous) iCloud entitlement. Then regenerate the provisioning profile and use the new one.