2012-06-05 10 views
16

In meiner App muss ich Core Data Database und Audiodateien speichern, also habe ich sie entschlüsselt, um sie in das Documents-Verzeichnis zu legen. Um sie zu verhindern, dass das Sichern, wenn ich zum ersten Mal die App starten, habe ich die wie dieseNicht in iCloud sichern, aber immer noch abgelehnt

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
[self addSkipBackupAttributeToItemAtURL:[self applicationDocumentsDirectory]]; 
} 
    - (NSURL *)applicationDocumentsDirectory 
{ 
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
} 
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL 
{ 
    if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1 
    const char* filePath = [[URL path] fileSystemRepresentation]; 

    const char* attrName = "com.apple.MobileBackup"; 
    u_int8_t attrValue = 1; 

    int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0); 
    return result == 0; 
    } else { // iOS >= 5.1 
    return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil]; 
    } 
} 

nicht Sicherungsflag tun, aber es scheint, wie es nicht funktioniert - ich immer noch abgelehnt bekommen:

Wir haben festgestellt, dass Ihre App nicht den Richtlinien für die Speicherung von iOS-Daten entspricht, die gemäß den Richtlinien zur Überprüfung von App Stores erforderlich sind.

Insbesondere haben wir festgestellt, dass Ihre App beim Starten und/oder Herunterladen von Inhalten 3,6 MB speichert. Um zu überprüfen, wie viele Daten die App speichert:

  • Installieren und starten Sie Ihre App
  • Gehen Sie zu Einstellungen> iCloud> Speicher & Backup> Speicher verwalten
  • Falls erforderlich, tippen Sie auf "Alle anzeigen apps"
  • überprüfen Sie Ihre App-Speicher

Und das andere Problem ist, dass ich kann nur das nicht, - ich sehe nicht, meine app in

Einstellungen> iCloud> Speicher & Backup> Speicher verwalten

Vielleicht ist das Problem nur bei 5,0, die ich denke, Art nicht hier?

+10

Warum die 'close' vote? Diese Frage ist definitiv nicht off-topic. –

+1

Ich denke, dieser Link http://www.icapps.be/prevent-app-rejectioncaused-by-icloud-storage/ wird für euch nützlich sein. –

Antwort

9

Das Problem ist mit iOS 5.0, in diesem iOS sollten Sie nicht die Dont Backup-Flag setzen Die Dont Backup-Flag wurde in IOS 5.0.1 eingeführt Wir haben ein ähnliches Problem mit unserer App, es wurde mehrere abgelehnt mal So hatten wir eine Arbeit um zu tun, verschiedene IOSen zu behandeln wir iOS < 5.0, iOS 5.0 und iOS unterstützen benötigt> 5,0

So Apfel nach dem Kontakt, haben wir das keine Lösung finden, außer verschiedene Pfade müssen auf verschiedene iOSes

Wir hatten eine Funktion wie folgt:

+ (NSString*) savePath 
{ 
    NSString *os5 = @"5.0"; 

    NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; 
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 

    if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedAscending) //lower than 4 
    { 
     return path; 
    } 
    else if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedDescending) //5.0.1 and above 
    {   
     return path; 
    } 
    else // IOS 5 
    { 
     path = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; 
     return path; 
    } 

    return nil; 
} 

Wir haben diese Funktion immer noch benutzt.

Bitte lesen Sie mehr

iOS 5.0

Es ist nicht möglich, Daten von Backups auf iOS 5.0 auszuschließen. Wenn Ihre App iOS 5.0 unterstützen muss, müssen Sie Ihre App-Daten in Caches speichern, um zu vermeiden, dass Daten gesichert werden. iOS löscht bei Bedarf Ihre Dateien aus dem Verzeichnis Caches, sodass Ihre App ordnungsgemäß dekrementieren muss, wenn Datendateien gelöscht werden.

http://developer.apple.com/library/ios/#qa/qa1719/_index.html

+0

Vielen Dank für eine großartige Antwort, aber ich denke, ich werde nur das Bereitstellungsziel auf 5.0.1 ändern, das wird es tun, oder? –

+1

Ja würde es, in meinem Fall, ich könnte es nicht tun, da ich alle iOS-Versionen unterstützen musste, müssen Sie Itunes verbinden die Mindestversion von iOS auf 5.0.1 –

+0

Ich verstehe nicht, wie dies entspricht Apples iCloud-Regeln. Dies gibt den Pfad zum Dokumentenordner für beide Versionen <5.0.1 und Versionen> 5.0.1 zurück. Legen Sie auch einen 'NSURLIsExcludedFromBackupKey' für Version> 5.0.1 fest? – Suz

Verwandte Themen