標籤:ios 沙箱 儲存
一 IOS沙箱機制
出於安全的目的,應用程式只能將自己的資料和喜好設定寫入到幾個特定的位置上。當應用程式被安裝到裝置上時,系統會為其建立一個家目錄,這個家目錄就是應用程式的沙箱。所以的檔案都要儲存在此,例像,表徵圖,聲音,映像,屬性列表,文字檔等。(For security reasons, iOS places each app (including its preferences and data) in a sandbox at install time. A sandbox is a set of fine-grained controls that limit the app’s access to files, preferences, network resources, hardware, and so on. As part of the sandboxing process, the system installs each app in its own sandbox directory, which acts as the home for the app and its data.)
1、每個應用程式都有自己的儲存空間 2、應用程式不能翻過自己的圍牆去訪問別的儲存空間的內容 3、應用程式請求的資料都要通過許可權檢測,假如不合格話,不會被允許存取。 sandbox是一種安全體系,應用程式的所有操作都要通過這個體系來執行,其中核心內容是:sandbox對應用程式執行各種操作的許可權限制。
二 模擬器中的沙箱
下面看看模擬器的沙箱檔案夾在mac電腦上的什麼位置。沙箱檔案都在個人使用者名稱檔案夾下的一個隱藏檔案夾裡,中文叫資產庫,其實就是Library。查看方法:
方法1 可以設定顯示隱藏檔案,然後在Finder下直接開啟。設定查看隱藏檔案的方法如下:開啟終端,輸入命令
顯示Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool true 隱藏Mac隱藏檔案的命令:defaults write com.apple.finder AppleShowAllFiles -bool false 輸完單擊Enter鍵,退出終端,重新啟動Finder就可以了
重啟Finder:按一下滑鼠視窗左上方的蘋果標誌-->強制退出-->Finder—>
現在能看到資產庫檔案夾了
開啟資產庫後找到/Application Support/iPhone Simulator/檔案夾。這裡面就是模擬器的各個程式的沙箱目錄了。
方法2 這種方法更方便,在Finder上點->前往->前往檔案夾,輸入/Users/username/Library/Application Support/iPhone Simulator/ 前往。username這裡寫你的使用者名稱。或者為 ~/Library/Application Support/iPhone Simulator/ (~表示目前使用者目錄)
三 目錄結構
預設情況下,每個沙箱含有3個檔案夾:Documents, Library 和 tmp。因為沙箱機制,應用只能在這幾個目錄下讀寫檔案Documents:蘋果建議將程式中建立的或在程式中瀏覽到的檔案資料儲存在該目錄下,iTunes備份和恢複的時候會包括此目錄。
Library:儲存程式的預設設定或其它狀態資訊;Library/Caches:存放快取檔案,iTunes不會備份此目錄,此目錄下檔案不會在應用退出刪除tmp:提供一個即時建立臨時檔案的地方。iTunes在與iPhone同步時,備份所有的Documents和Library檔案。iPhone在重啟時,會丟棄所有的tmp檔案。
是上面提到的三個目錄 :Documents、Library、 tmp、XXX.app
是一個完整家目錄的結構:
下一節會詳細介紹沙箱中各個目錄的作用及其訪問使用代碼。
參考:https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheiOSEnvironment/TheiOSEnvironment.html