2012-06-22 21 views
8

tester di Apple sono state respinte la nostra applicazione a causa violazione delle linee guida:NSUserDefaults provoca app rifiutare

[2.23 Apps devono seguire le linee guida iOS di Storage o saranno respinte]

Dal momento che abbiamo memorizzato i nostri file di database senza il flag NSURLIsExcludedFromBackupKey - è stato eseguito il backup in iCloud - e ha causato il rifiuto.

Quindi, abbiamo aggiunto il flag NSURLIsExcludedFromBackupKey ai nostri file e ha ridotto la quantità di dati archiviati in iCloud.

MA - ci siamo resi conto che NSUserDefaults richiede anche una certa quantità di spazio in iCloud. Stiamo usando [NSUserDefaults standardUserDefaults] e non ne abbiamo molto sotto controllo.

Se andiamo a device->settings->iCloud->Storage & BackUP->Manage Storage, possiamo vedere che la nostra applicazione richiede ancora 0,5 KB di dati in iCloud, a causa dell'utilizzo di NSUserDefaults. (rimuovendo gli usi della NSUserDefaults nel codice diminuirà a 0 - nessun dato)

Sarà di Apple rifiutare la nostra applicazione di nuovo per il NSUserDefaults prende i dati in iCloud?

+0

No, è previsto che le applicazioni utilizzino 'NSUserDefaults', quanto spazio occupano gli altri file e dove sono stati memorizzati? – danielbeard

+0

L'app ha utilizzato 2,4 MB di spazio. Ora ci vogliono tra 0.4kb e 0.8kb. – igoren

+0

Vedo ora un avviso nel codice: ATTENZIONE: la fase di compilazione delle risorse del pacchetto di copia contiene il file Donno-Info.plist di questo obiettivo "Donno-Info.plist". Vedo che ha copiato il plist dal pacchetto. Abbiamo già inviato l'app alla Apple in questo modo, pensi che rifiuteranno l'app per tale motivo? (potrebbe raddoppiare la quantità di spazio NSUserDefaults) .. – igoren

risposta

3

È possibile utilizzare qualsiasi quantità di dati in NSUserDefaults nella propria app e non verrà rifiutato. Non sono sicuro di quali siano i dati massimi, ma non ricordo che Apple abbia specificato un limite. C'è tuttavia un limite alle impostazioni di default di iCloud. È possibile eseguire il backup di NSUserDefaults su iCloud, ma esiste un limite di 1 MB per i dati salvati. Quindi tieni conto di quanto sono grandi i tuoi dati quando li salvi.

+1

Ma NSUserDefaults non è destinato anche all'archiviazione di dati arbitrari. È inteso solo per le preferenze e le impostazioni. – uchuugaka