2014-04-27 29 views
0

上啓用這是我的代碼:無法確定是否icloud是我的設備

- (IBAction)aBackupSetup:(UIButton *)sender { 

// check to see if this device is iCloud enabled; display message if not 
NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
if (ubiq) { 
    NSLog(@"AppDelegate: iCloud access!"); 
} else { 
    NSLog(@"AppDelegate: No iCloud access (either you are using simulator or, if you are on your phone, you should check settings"); 
} 

我試圖確定是否是iCloud的設備(新iPad)上啓用。當我通過在應用程序中點擊UIButton來運行此代碼時,它會記錄「No iCloud access ...」。我已經看到這個代碼遍及SO和互聯網 - 爲什麼它不能在我的設備上工作? (在iPad上啓用iCloud IS)。

+0

那麼,是否啓用了iCloud?你沒有提到這一點。 –

+0

糟糕...是的,它在iPad上啓用。 – SpokaneDude

+0

是設置> iCloud中的「文檔和數據」開關? –

回答

2

原因,你永遠在這裏得到一個零結果:

  1. 的iCloud實際上並沒有啓用(雖然你說的是什麼,所以這不是這一次)
  2. icloud是在設備上啓用但「文檔&數據」不是。 「iCloud」涵蓋了大量的服務,因此僅僅被啓用是不夠的。沒有文檔&數據,應用程序無法將數據保存在iCloud中。
  3. 您的供應配置文件不包含iCloud,或者以妨礙iCloud工作的方式損壞。供應配置文件要求包括:

    1. 您必須啓用iCloud中的應用程序ID「證書,標識&配置文件」了iOS開發中心的部分。
    2. 應用程序ID不能包含通配符(*),它必須是完整的ID。
    3. Xcode中的您的應用程序ID必須完全匹配上一步中的應用程序ID。
    4. 執行上述操作後,您必須生成供應配置文件,以便您擁有反映iCloud權利的配置文件。如果此應用的舊配置文件不包含iCloud,則必須將其刪除並將其替換爲新配置文件。

如果你任何一步出錯,檢查URL只會返回零。沒有錯誤情況,但由於未啓用iCloud訪問,所以也沒有URL。

對於iOS 6或以上,你最好檢查使用

id ubiquityToken = [[NSFileManager defaultManager] ubiquityIdentityToken]; 

這是一個很大更快的iCloud可用性。查找URL可能涉及網絡連接,但此方法立即返回。您仍需要URL來讀取/寫入iCloud中的數據,但如果您只想檢查可用性,請使用此方法。

+0

嗨湯姆...我驗證了所有內容,創建了新的預配配置文件以防萬一,並且在啓用了文檔和數據的設備上運行時仍然返回'零'。任何其他的想法在哪裏檢查? – SpokaneDude

相關問題