Ich bereite mich darauf vor, eine zweite Version einer meiner Apps zu starten. Ich werde diese neue Version unter einer neuen Paket-ID aus der vorherigen Version veröffentlichen. In der vorherigen Version habe ich den iCloud-Schlüsselwertspeicher verwendet, um einige Einstellungen und sonstige Informationen zu speichern. Hier ist meine Berechtigungsdatei für v1:
%Vor%Folgen Sie den Anweisungen in Ссылка unter " Konfigurieren des gemeinsamen Schlüsselwertspeichers für mehrere Apps ", so sieht meine Datei mit den v2-Berechtigungen aus:
%Vor%Gemäß den Dokumenten sollte v2 jetzt vom selben Schlüsselwertspeicher wie die v1 lesen. Wenn es jedoch einen einfachen Test durchführt, schlägt es fehl. So vervielfältige ich.
Öffnen Sie MyApp 1.0. Schreiben Sie einen Bool-Wert von "YES" auf den Schlüssel "InstalledVersion1" in den Schlüsselwertspeicher.
%Vor%Öffnen Sie MyApp 2.0 und lesen Sie diesen Wert aus dem Geschäft.
%Vor% Dies druckt {}
.
Es sollte etwas wie { "InstalledVersion1" = 1; }
... aber es ist nicht.
Was mache ich falsch? Muss ich nur etwas geduldiger sein, damit der Laden synchronisiert wird?
Gerät meldet sich bei Interesse an: Ссылка (nach dem Ausführen von p (void)[[NSUbiquitousKeyValueStore defaultStore] _printDebugDescription]
im Debugger).
Die Antwort ist irgendwie lächerlich, aber hier gilt es für jeden anderen, der vor einem ähnlichen Problem steht.
Hier ist was ich getan habe.
Nach drei Tagen, in denen alles versucht wird, stellt sich heraus, dass ein obskures Element im iCloud-Speicher und scheinbar unzusammenhängende Einstellungen das Problem behoben haben.
Wenn diese zwei Dinge es nicht für dich tun, wünsche ich dir Glück. Godspeed.
Tags und Links objective-c ios icloud key-value