一 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對應用程序執行各種操作的權限限制。
二 模擬器中的沙盒vc3Ryb25nPjwvcD4KPHA+CiAgICAgIM/Cw+a/tL+0xKPE4sb3tcTJs7rQzsS8/rzQ1NptYWO158TUyc+1xMqyw7TOu9bDoaPJs7rQzsS8/ra81Nq49sjL08O7p8P7zsS8/rzQz8K1xNK7uPbS/rLYzsS8/rzQwO+jrNbQzsS90NfK1LS/4izG5Mq1vs3Kx0xpYnJhcnmho7Lpv7S3vbeoOjwvcD4KPHA+CiC3vbeoMSAgv8nS1Mno1sPP1Mq+0v6y2M7EvP6jrMi7uvPU2kZpbmRlcs/C1rG907Tyv6qho8no1sOy6b+00v6y2M7EvP61xLe9t6jI58/Co7q08r+q1tW2y6OsyuTI68P8we48L3A+CjxwPgo8L3A+CjxwcmUgY2xhc3M9″brush:java;”> 顯示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