2011-11-11 34 views
11

我遇到了將iCloud與我的應用程序集成的問題。NSUbiquitousKeyValueStore錯誤:無效com.apple.developer.ubiquity-kvstore-identifier權利

當我設置測試了iCloud的可用性,我收到成功,函數

NSURL *iCloudURL = [fileManager URLForUbiquityContainerIdentifier:@"AppID"]; 

但畢竟這沒錯,當我嘗試執行:

NSUbiquitousKeyValueStore *iCloudStore = [NSUbiquitousKeyValueStore defaultStore]; 

我收到錯誤

NSUbiquitousKeyValueStore error: no valid com.apple.developer.ubiquity-kvstore-identifier entitlement. 

有關如何解決此問題的任何想法?我的App.Entitlements文件使用默認的宏前綴,沒有任何更改從自動生成的文件。 iTunes Connect中的AppID絕對啓用了iCloud。

謝謝。

+0

你產生怎樣近日/下載/安裝在您的開發配置配置文件?一旦您在dev站點中檢查「iCloud Enabled」設置,您必須重新生成您的配置文件。另外,你的Entitlements.plist文件包含什麼? –

+0

我剛剛生成了新的配置文件,並在我發佈此文件之前進行了設置,因此我絕對不使用過時的配置文件。我的entitlements.plist似乎不見了,我會研究它,看看它是否能解決任何問題。謝謝。 –

+4

它的確如同添加一個Entitlements.plist文件一樣簡單,確保它具有可以調試 - NO條目,現在它全部像吉普賽魔術一樣工作!謝謝你,先生。 –

回答

16

即使我的所有代碼,設置,權利等都是正確的,我也遇到了同樣的問題。我通過從我的iPhone上刪除應用程序來修復它,然後在Xcode中構建並在我的iPhone上運行它,並運行它。只是想補充一點,如果其他解決方案不適用於其他人。

3

我做了如下得到這個工作對我來說(Xcode的4.2.1):

  1. 在Xcode中,去你的目標>摘要>的底部,單擊啓用授權。
  2. 在iOS Provisioning Portal中,轉到App ID並啓用iCloud支持。 (您可能不需要這樣做,但它對我有用。)
  3. 編輯您的供應配置文件以強制更新;然後下載此配置文件並將其打開,以便在Xcode中自動啓動。
  4. 清理並將您的應用構建到您的設備上。
+1

在XCode 6中,它更簡單一些:轉到目標>功能> iCloud並將其打開。 Xcode應該照顧其餘的。 – Nick

2

我在嘗試調試Mac(非iOS)應用程序時遇到了此問題。問題原來是因爲我沒有簽署調試版本,沒有將「Skip Install」設置爲「Yes」的項目的部署階段。

顯然,iCloud將無法正常使用未簽名的應用程序。

5

大警告:如果您的設備已越獄,請確保您已卸載AppSync。因爲這個,我有兩個瘋狂的日子。即使使用正確的授權和配置文件,iCloud(和Game Center)也不能在安裝了AppSync的設備上運行!

+1

我有一個應用內購買功能的問題,你的建議救了我。非常感謝。我現在收到非空產品清單! – florian

1

添加com.apple.developer.ubiquity-kvstore-identifier在您的應享權利與以下值:

$(TeamIdentifierPrefix)$(CFBundleIdentifier) 
相關問題