2014-10-17 78 views
5

我試過了所有內容並閱讀了所有主題,但無法找到爲什麼NSUbiquitousKeyValueStore未存儲在iCloud中。NSUbiquitousKeyValueStore未與iCloud同步

•創建一個特定的應用程序ID

•啓用iCloud的這個應用程序ID

•創建的供應檔案

•在項目啓用iCloud的

•設置的權利,以核心價值:$(TeamIdentifierPrefix)$(CFBundleIdentifier)

•打開設備上的iCloud Drive

但NSUbiquitousKeyValueStore只保存在本地。當我重新安裝應用程序時,它不會從iCloud獲取信息。

這是我正在努力:

NSUbiquitousKeyValueStore *cloudStore = [NSUbiquitousKeyValueStore defaultStore]; 

if ([[cloudStore stringForKey:@"testString"] length] == 0) { 
    NSLog(@"Nothing in iCloud - setting a value..."); 
    [cloudStore setString:@"I'm live in iCloud!" forKey:@"testString"]; 
    [cloudStore synchronize]; 
    [[NSUbiquitousKeyValueStore defaultStore] synchronize]; 

} else { 
    NSString *result = [cloudStore stringForKey:@"testString"]; 
    NSLog(@"Found something in iCloud - here it is: %@", result); 
} 

[self registerForiCloudNotificatons]; 

如果我刪除應用程序或嘗試新的設備沒有找到在iCloud上任何東西。

所以,我想這要看看iCloud的工作:

NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
if (ubiq) { 
    NSLog(@"iCloud at %@", ubiq); 

} else { 
    NSLog(@"No iCloud access, %@", ubiq); 
} 

而這總是返回「沒有iCloud的訪問」,我無法弄清楚爲什麼。無論我做什麼URLForUbiquityContainerIdentifier總是返回零。

我在啓用了iCloud的iOS 8設備上運行。

我錯過了什麼嗎?

謝謝!

+3

經過幾天的努力,我簡單地從iCloud註銷並重新登錄。現在它正在運行...... URLForUbiquityContainerIdentifier仍然返回nil,因此我無法檢查iCloud是打開還是關閉,但至少它正在同步並將數據保存在雲上。 – tomDev 2014-10-20 12:50:15

回答

3

我有同樣的問題。在設備上註銷並重新登錄我的iCloud帳戶也爲我解決了這個問題。

當您在啓用iCloud權利之前在設備之前在之前安裝了具有相同捆綁標識符的應用程序時,似乎會出現此問題。我在2個測試設備上遇到了這個問題。在第一次啓用iCloud的情況下安裝應用程序的第三個設備沒有任何問題。