2015-09-26 40 views
1

我們創建了一個具有相同應用程序ID的新項目,但在隔離存儲中將其指定爲不同的文件夾。爲什麼是這樣?爲什麼具有相同應用程序ID的新項目仍然指定了新位置?

文件:///用戶/ houman /庫/開發商/ CoreSimulator /設備/ FBFFFF1E-B5C8-4541-AB4B-ED1657D43EB9 /數據/集裝箱/數據/應用/ EB3A549F-1604-4E5C-8FBE-3076A3D581E5/Documents/

file:/// Users/houman/Library/Developer/CoreSimulator/Devices/FBFFFF1E-B5C8-4541-AB4B-ED1657D43EB9/data/Containers/Data/Application/22E1E792-1F4F-4F05-B7D9- F61AD3624EE9/Documents/

即使這些應用程序共享相同的ID。 由於它們不共享相同的位置,因此不會發生核心數據遷移。 有什麼建議嗎?

更新: 我們在AppStore中有兩個應用程序,並希望將這些功能組合在一起。因此,這個想法是使用另一個應用程序的appID從一個單獨的項目推送一個新版本。我們有appID和正確的證書,但隔離存儲似乎取決於其他東西,而不僅僅是appid。沒有這一點,就不可能將現有數據遷移到新系統。或者,我們可以將所有文件複製並粘貼到其他項目中,並經歷許多痛苦。這可能使它成爲可能。

+0

不同的項目,不同的位置,是有道理的。只需嘗試移動CoreData文件或創建一個過程以重新填充核心數據文件。 – zaph

+0

如果此行爲僅在模擬器內受到限制,則可以按照您的建議移動coredata。但是通過crashlytics將它部署到實際設備上,表明了同樣的問題。 – Houman

+0

您是否更換模擬器? – Jeef

回答

0

我已經看到了我的結局 - 我相信(並且可能是錯誤的),您運行的每個模擬器都會在磁盤上獲取它自己的文件夾。例如,如果您將iPhone 5切換到iPhone 6s,則可能會以不同的文件夾結束。

我總是(在模擬器中運行時)打印出磁盤上的位置,以便我可以看看sqlite文件,如果我需要和最近(xcode7)我已經注​​意到此目錄更改之間運行 - 但在我的情況下,我跟蹤到更改模擬器版本。

+0

謝謝你的提示。我只是嘗試沒有成功。請參閱最新的問題。 – Houman

0

主要是出於安全原因。每個iOS應用程序都放置在應用程序沙箱中。

這不僅指文件系統中應用程序的沙箱目錄,通過限制對設備上存儲的用戶數據,系統服務和硬件的訪問來授予安全性。

相關問題