2011-11-11 5 views
11

Sto riscontrando un problema durante l'integrazione di iCloud con la mia app.Errore NSUbiquitousKeyValueStore: nessuna autorizzazione valida com.apple.developer.ubiquity-kvstore-identifier

Quando ho deciso di prova viene disponibilità iCloud, ricevo Successo per la funzione

NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:@"AppID"]; 

ma subito dopo, quando si tenta di eseguire:

NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore]; 

ricevo l'errore

NSUbiquitousKeyValueStore error: no valid com.apple.developer.ubiquity-kvstore-identifier entitlement. 

Qualche idea su come risolvere questo problema? Il mio file App.Entitlements utilizza i prefissi macro'd predefiniti, nulla modificato dal file generato automaticamente. iCloud è definitivamente abilitato su AppID in iTunes Connect.

Grazie.

+0

Come recentemente avete generato/scaricato/installato i profili di provisioning di sviluppo? Dopo aver verificato l'impostazione "iCloud abilitato" nel sito dev, devi rigenerare i tuoi profili. Inoltre, cosa contiene il file Entitlements.plist? –

+0

Avevo appena generato un nuovo profilo di provisioning e l'ho impostato appena prima che lo scrivessi, quindi sicuramente non sto usando il profilo di provisioning obsoleto. Il mio entitlements.plist sembra mancare, esaminerò quello e vedrò se risolve qualche cosa. Grazie. –

+4

E 'stato davvero semplice come l'aggiunta di un file Entitlements.plist, assicurandosi che fosse un possibile eseguire il debug - nessuna voce, e ora tutto funziona come per magia zingara! Grazie, signore. –

risposta

16

Ho avuto lo stesso problema anche se tutto il mio codice, le impostazioni, i diritti, ecc. Erano corretti. L'ho risolto eliminando fisicamente l'app dal mio iPhone, quindi costruendo Xcode e eseguendola sul mio iPhone e ha funzionato. Volevo solo aggiungere che nel caso le altre soluzioni non funzionassero per qualcun altro là fuori.

3

ho fatto il seguito per ottenere questo a lavorare per me (Xcode 4.2.1):

  1. In Xcode, andare al bersaglio> Sommario> nella parte inferiore, fare clic su Attiva diritti.
  2. In iOS Provisioning Portal, andare a ID app e abilitato il supporto iCloud. (Non si può avere per fare questo, ma ha funzionato per me.)
  3. Modifica il tuo profilo di provisioning per forzarlo ad aggiornare; quindi scarica questo profilo e aprilo in modo che venga avviato automaticamente in Xcode.
  4. Pulisci e crea la tua app sul tuo dispositivo.
+1

In XCode 6 è un po 'più semplice: vai su Target> Funzionalità> iCloud e accendilo. Xcode dovrebbe prendersi cura del resto. – Nick

2

Mi sono imbattuto in questo problema durante il tentativo di eseguire il debug di un'applicazione Mac (non iOS). Il problema si è verificato che non stavo firmando la build di debug e che la fase di distribuzione del progetto con "Skip Install" non era impostata su "Sì".

Apparentemente, iCloud non funzionerà correttamente con un'applicazione non firmata.

5

Avviso importante: se il dispositivo è jailbroken, assicurarsi di aver disinstallato AppSync. Ho avuto due giorni folli a causa di questo. iCloud (e Game Center) non funzionano sul dispositivo con AppSync installato anche con diritti e profili corretti!

+1

Ho riscontrato un problema con la funzione di acquisto in-app, il tuo consiglio mi ha salvato. Molte grazie. Ora ricevo una lista di prodotti non vuota! – florian

1

Aggiungere com.apple.developer.ubiquity-kvstore-identifier nei vostri diritti con il seguente valore:

$(TeamIdentifierPrefix)$(CFBundleIdentifier)