2010-10-11 62 views
4

基本上,當我在XCode中有一個應用程序時,我更改了sqlite/coredata數據庫,並嘗試在已經有應用程序的設備上運行它,然後應用程序崩潰。我必須刪除應用程序並重新安裝它。核心數據 - 提交應用商店更新

我已經更新了已經提交到應用商店的應用程序的數據庫。已有大約100次下載,現在我想提交更新。那些已經下載它的人會遇到問題嗎?我如何確保他們不會?舊數據庫中不會有任何數據,我需要說實話,但我擔心該應用程序根本無法啓動。

感謝 湯姆

回答

4

從您的描述中可以看出,您已更改託管對象模型,但不更改商店版本。

看看本教程(可能是Mac版本,但它應該是有效的)here

但是,如果您爲了省略遷移(因爲您說用戶在商店中沒有任何數據),您可以隨時更改商店路徑,以便加載另一個商店。但是,如果您計劃任何更新和應用程序的進一步發展,那麼我強烈建議閱讀核心數據遷移。

+0

是的,我不知道遷移,我只是改變了原來的模型。 。:/ oops。我可能會在備份文件的某處找到舊版本的副本......:/感謝您的鏈接,我現在看看。 – 2010-10-11 10:30:42

+0

如何更改商店路徑?這意味着應用程序不會爲已經購買應用程序的人崩潰嗎? – 2010-10-11 10:32:48

+0

我想你正在使用的代碼中的某個地方[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]。URL應該由[[NSBundle mainBundle] pathForResource:@「MOD elName「ofType:@」mom「],其中ModelName是ManagedObjectModel存儲的路徑。如果您將其更改爲ModeName1,則應停止使用舊型號,但會丟失所有數據。還請記住刪除sql存儲(或者更改它的路徑)。不過,管理版本是一個更好的主意。乾杯,帕維爾 – Pawel 2010-10-11 11:27:37

2

是與舊的數據庫運行時,應用程序可能會崩潰。

蘋果發佈了關於核心數據版本管理和遷移的一個有趣的文件名爲:Core Data Model Versioning and Data Migration Programming Guide

如果您閱讀本文,您將學習如何避免與更新coredata數據庫崩潰。

+0

感謝您的鏈接......我現在明白了,我之前並沒有意識到版本控制,以及...(現在我知道我將在未來這樣做......但現在我已經改變了模型,並沒有原始的,我可能能夠找到它在備份某處...這是最好的事情嗎? – 2010-10-11 10:34:20