2013-01-22 13 views
12

Ich füge iCloud mit Core-Daten zu einer App hinzu, die bereits im App Store vorhanden ist. Daher muss ich Upgradeszenarien testen. Wenn ich jedoch meine App von meinem Gerät lösche und sie erneut von Xcode installiere, habe ich bemerkt, dass alles in meinem Ubiquity-Container-Ordner auf dem Gerät gespeichert ist! Dies ist unglaublich ärgerlich, da iCloud beim Versuch, Dateien aus dem von mir angegebenen Transaktionslog-Verzeichnis hochzuladen, oft verwirrt wird. Ich muss am Ende einen neuen Speicherort für den Transaktionslog angeben, damit er wieder funktioniert, was natürlich in Zukunft nicht für meine Tests funktionieren wird.iCloud Ubiquity-Container werden nicht auf App gelöscht gelöscht?

Im Folgenden ist der Fehler, den ich erhalten:

PFUbiquitySafeSaveFile waitForFileToUpload:: CoreData: Ubiquity: (0) permanentLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/receipt.0.cdt safeLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt currentLocation: : /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~appnamegoeshere/DatabaseTransactionLogs/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20/iCloudData/8u0BfiCwOkHHa~o8hF4bunW~zmdS_C8om5efuugxRaA=/mobile.8A0C3F8A-4077-57D7-8250-6BE15D1BCD20.0.cdt

kv: (null)

Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1e5b6b10 {NSLocalizedDescription=The file upload timed out.}

Wer weiß, wie eine Allgegenwart Container ausräumen zwischen App installiert? Auch das Entfernen des Ubiquity-Containers aus den App-Einstellungen und das erneute Veröffentlichen beheben dieses Problem nicht. Ein Kunde könnte dieses Problem theoretisch lösen, indem er einfach die App löscht und dann seine iCloud-Dateien dafür löscht. Dieses Problem war wirklich frustrierend, um festzustellen, was die Ursache des Problems ist - irgendwelche Vorschläge werden geschätzt!

Antwort

7

Nach viel Kopfhämmern konnte ich das herausfinden. Jemand hat mir gesagt, dass Sie alle Ihre iCloud-Daten für Ihr Gerät sehen können, wenn Sie auf developer.icloud.com gehen und sich mit Ihrem iCloud-Konto anmelden. Bei einigen Tests konnte ich feststellen, dass die Daten auf dem iCloud-Server sofort gelöscht wurden, als ich ihm das Löschen von meinem Gerät sagte. Alle Ordner und Dateien, die ich in meinem Ubiquity-Container auf meinem Gerät erstellt hatte, blieben jedoch erhalten, auch wenn ich meine App löschte.

Meine Arbeit war es, zu überprüfen, wenn ich meine App für die erste Verwendung von iCloud einrichten und sehen, ob meine Verzeichnisse bereits im Ubiquity-Container waren. Wenn dies der Fall ist, lösche ich die Verzeichnisse und alle darin enthaltenen Dateien manuell mit folgendem Code:

[fileManager removeItemAtPath:[[fileManager URLForUbiquityContainerIdentifier:nil] path] error:&error]; 
+0

Wie haben Sie festgestellt, ob Sie iCloud zum ersten Mal einrichten? Speichern Sie ein NSUserDefaults? Wenn Sie das erste Mal einrichten, wie bereinigen Sie diesen Ordner? – Austin

+0

Ich habe überprüft, ob die Ordner in meinem Ubiquity-Container (z. B. die Datenbankdatei) vorhanden sind. – lehn0058

+0

Wie haben Sie den Ordner gelöscht?Ich habe versucht, mit '[[NSFileManager defaultManager] removeItemAtPath zu löschen: path error: & error];' aber ich erhalte einen Fehler – kroger

2

So soll iCloud funktionieren. Durch das Löschen einer App auf einem Gerät werden die iCloud-Daten nicht automatisch gelöscht. Wenn die App weiterhin auf anderen Geräten installiert ist, die dasselbe Konto verwenden, können sie die Daten weiterhin verwenden.

Wenn Sie iCloud-Daten während des Tests löschen möchten, gehen Sie zu Einstellungen -> iCloud, führen Sie einen Drilldown zu Ihrer App durch und löschen Sie die Daten.

+1

Ja, genau so habe ich die Daten gelöscht. Es bleibt aber immer noch der Ubiquity-Ordner auf meinem Gerät, der die Probleme verursacht. Ich änderte sogar meine App, um zu überprüfen, ob dieser Ordner noch existierte, um sicherzustellen, dass ich nicht verrückt war, und es ist immer da, nachdem ich die iCloud-Daten aus den Einstellungen gelöscht habe. – lehn0058

+0

Nur die Ubiquity-Ordner existieren-- leer-- * sollte * in Ordnung sein. Wenn es für Sie nicht in Ordnung ist, wäre es gut, Ihre Frage mit mehr Details darüber zu aktualisieren, was genau falsch läuft. –

+2

Es ist nicht nur der Ubiquity-Container. Die Verzeichnisse darin sind immer noch da. Ich glaube, das ist der Grund dafür, dass iCloud verwirrt wird, da sie im lokalen Ubiquity-Container existieren, aber nicht auf dem iCloud-Server. Dies führt zu einer Zeitüberschreitung, wenn ich die Anforderung zum Hinzufügen des persistenten Geschäftskoordinators erstelle. Ich werde noch ein paar Tests durchführen, um genau zu erfahren, was auf dem Gerät nach dem Löschen der iCloud-Einstellungen noch übrig ist. – lehn0058

Verwandte Themen