2014-02-16 29 views
1

我正在製作一個iOS應用程序,該應用程序使用存儲在應用程序主包中的.plist文件中的字符串填充UITableView(通常情況下,您將擁有.plist )。我注意到,這個.plist被構建階段的Copy Bundle Resources階段複製到我的應用程序的應用程序目錄中。我開始想知道它是否真的需要在那裏,因爲我從我的應用程序的主包,而不是應用程序目錄訪問它。因此,作爲測試,我從Copy Bundle Resources階段刪除.plist,運行該應用程序,發現我的UITableView仍然使用.plist中的字符串填充。我已經清理了構建並再次運行應用程序,它確實有效。兩個問題:主要包和應用程序目錄中的文件

  1. 如果安全和隱私感興趣的是您的應用程序,你不應該總是從Copy Bundle Resources階段刪除安全/私營部門的資源,使他們無法訪問?
  2. 爲什麼像故事板資源得到默認複製時,他們實際上並沒有從那裏訪問?」

在此先感謝這麼多的幫助

回答

4

你作出錯誤的假設。應用目錄IS當你從複製階段刪除文件時,它們將不會被安裝在你的應用程序中,並且應用程序將失敗

SEEMS工作的原因是建築物採用快捷方式。構建不會刪除p的文件在之前的版本中捆綁在一起。

如果你做了一個乾淨的(從項目菜單),然後再次構建,Xcode將刪除應用程序的前一個副本,並從頭開始重新構建它。您還應該從目標設備/模擬器中刪除它,因爲它會在將新版本複製到設備上時從之前的版本中選取剩餘資源。

+0

輝煌,謝謝!現在我的問題是,如果我不希望我的.plist中的數據可以訪問,以致有人無法向其中添加數據或更改其中的數據,從而更改我的應用正在處理的信息,該怎麼辦? – kylejm

+0

除了越獄設備之外,您的應用程序捆綁包無法在您的程序之外讀取或寫入。 –

+0

但有人說,在Mac上可以帶上我的應用程序的.ipa文件,控制點擊它,然後點擊「顯示軟件包內容」選項,顯示它們在應用程序中的所有資源,然後他們可以做一些簡單的事情作爲添加項目到.plist文件? – kylejm

相關問題