2013-04-23 7 views
8

私のアプリケーションの2番目のバージョンを起動する準備ができています。私は以前のバージョンから新しいバンドルIDでこの新しいバージョンをリリースするつもりです。以前のバージョンでは、iCloudキーバリューストアを使用して設定やその他の情報を保存していました。 、複数のアプリケーション間で共通のキー値ストレージを共有できない

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>get-task-allow</key> 
    <true/> 
    <key>com.apple.developer.ubiquity-kvstore-identifier</key> 
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> 
    <key>keychain-access-groups</key> 
    <array> 
      <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> 
    </array> 
</dict> 
</plist> 

「複数のアプリのための共通のキー値ストレージの構成」の下http://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.htmlでの指示に従った後、ここに私v2の資格ファイルは次のようになります:ここに私の資格は、v1のファイルの

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>com.apple.developer.ubiquity-kvstore-identifier</key> 
    <string>$(TeamIdentifierPrefix)com.companyname.MyApp</string> 
    <key>get-task-allow</key> 
    <true/> 
    <key>keychain-access-groups</key> 
    <array> 
      <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string> 
    </array> 
</dict> 
</plist> 

よりますドキュメントにv2はv1と同じキーと値のストレージから読み取られるはずです。ただし、単純なテストを実行すると失敗します。ここで私はどのように再現するのですか?

  1. Open MyApp 1.0。 "InstalledVersion1"キーに "YES"というブール値をキー値ストアに書き込みます。

    NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore]; 
    [store setBool:YES forKey:@"InstalledVersion1"]; 
    
  2. MyApp 2.0を開き、この値をストアから読み取ります。

    NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore]; 
    [store synchronize]; 
    NSLog(@"%@", [store dictionaryRepresentation]); 
    

これは{}を印刷します。

それは{ "InstalledVersion1" = 1; }

のようなものを印刷する必要があります...しかし、そうではありません。

私は間違っていますか?ストアを同期させるためにもうちょっと待てばいいですか?

デバイスログ:https://gist.github.com/dlo/688f187c75fd1b1fdc78(デバッガでp (void)[[NSUbiquitousKeyValueStore defaultStore] _printDebugDescription]を実行した後)。

答えて

4

答えはばかげていますが、ここでは同様の問題に直面している他の人のためになります。

ここに私がしたことがあります。

  1. iCloudストレージにCommonDocumentsというエントリがありました。私はそれを削除しました。
  2. 携帯データのiCloudドキュメント転送を有効にしました。

すべてのことを試してから、iCloudストレージ内のわかりにくい項目や一見無関係な設定が問題を解決したことが判明しました。

これらの2つのことがあなたのためにできない場合は、私は運がいいと思います。ゴッドスピード。

関連する問題