Problemas de sincronización de iCloud Key-Value-Store (NSUbiquitousKeyValueStoreDidChangeExternallyNotification no llamado)

Estoy escribiendo un pequeño juego universal para iOS. la puntuación más alta se sincronizará en todos los dispositivos a través de una tienda de clave / valor de iCloud.

obteniendo el puntaje más nuevo:

func retrieveHighestScore() -> Int64 {
        let iCloudScore: Int64 = NSUbiquitousKeyValueStore.defaultStore().longLongForKey(KeyValueKeyClassification.KeyHighscore.toRaw())
        let localScore: Int64 = Int64(NSUserDefaults.standardUserDefaults().integerForKey(KeyValueKeyClassification.KeyHighscore.toRaw()))
        var result: Int64 = 0

        if localScore > iCloudScore {
            storeNewHighscore(localScore)
            result = localScore
        } else {
            storeNewHighscore(iCloudScore)
            result = iCloudScore
        }
        return result
    }

almacenar una nueva puntuación más alta

func storeNewHighscore(newScore: Int64) {
        NSUbiquitousKeyValueStore.defaultStore().setLongLong(newScore, forKey: KeyValueKeyClassification.KeyHighscore.toRaw())
        NSUserDefaults.standardUserDefaults().setInteger(Int(newScore), forKey: KeyValueKeyClassification.KeyHighscore.toRaw())
        if NSUbiquitousKeyValueStore.defaultStore().synchronize() {
            println("Synched Successfully")
        }
    }

por alguna razón, sin embargo, los puntajes no están sincronizados.

sin erroressin choquessin valores nulos

Siempre obtengo el puntaje más alto del dispositivo actual, nunca el que obtuve en otros.

¿podría estar el motivo dentro de itunesconnect o hay algún problema con mi código? Estoy usando un ipad y un iphone para realizar pruebas, ambos conectados a mi propia cuenta de icloud.

Me estoy registrando para los cambios como este:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        NSNotificationCenter.defaultCenter().addObserver(self, selector: "icloudKeyValueChanged", name: NSUbiquitousKeyValueStoreDidChangeExternallyNotification, object: nil)
        if NSUbiquitousKeyValueStore.defaultStore().synchronize() {
            println("initial Synched Successfully")
        }

        return true
    }

pero la función 'icloudKeyValueChanged' nunca se llama.

Todas las capacidades de iCloud están bien como parece:

Respuestas a la pregunta(2)

Su respuesta a la pregunta