2011-12-05 22 views
1

我在應用程序商店中有一個現有的應用程序,我添加了iCloud。我遵循蘋果的指南以及其他人,其工作正常。但是我注意到,如果我的應用程序(最後一個生產版本)安裝在設備上2.0版本,然後從Xcode部署3.0版本(使用iCloud的版本)到設備上,那麼當我運行該應用程序時,我會得到:僅當升級應用程序時NSUbiquitousKeyValueStore錯誤。清潔安裝的應用程序正常工作。 iCloud

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

但是,如果我從設備上刪除原來的應用程序,然後部署3.0在Xcode我不明白的錯誤,和iCloud的正常工作。

我該怎麼做才能讓用戶在升級前不必刪除應用程序?

我試過這個在運行iOS 5.0.1的多個設備上,它們都做同樣的事情。

+0

iOS 4.3.5?在這個版本中沒有iCloud – akashivskyy

+0

我覺得這真的很愚蠢......但是我已經在運行5.0.1的多個設備上嘗試過了,但仍然存在這個問題。 – jamone

+0

你能發佈你的com.apple.developer.ubiquity-kvstore-identifier值嗎? – akashivskyy

回答

6

這不是授權程序的問題。 看一看以下技術說明:Technote 2285

報價:

不要使用Xcode的安裝或運行更新您的應用程序的質量 保證測試。

爲了使開發週期更快,Xcode僅將更改後的文件 放入其運行的應用程序中,並且不會從現有的 應用程序包中刪除文件。這使得構建速度更快。但這意味着在舊版本上使用Xcode運行的 可能會產生一個內部錯誤地過時的文件,當從App Store下載時,應用程序將不會有 下載的文件。這可能在測試 和屏蔽錯誤期間導致問題。

+0

不幸的是,如果您需要在測試之間保留應用沙箱中的數據,則會產生問題。如果您的應用在第一次啓動時執行特殊處理並將值保存到NSUserDefaults(例如),則如果您想查看第二次啓動時發生的情況,則無法刪除該應用。但是,這個警告絕對是真的。我已經看到從已刪除的XIB完全錯誤的屏幕出現並呈現整個應用程序失效。 – Oscar

+0

在這種情況下,我會建議您在應用程序啓動時預先填充沙箱。 –