1,Xcode6仿真器路徑更改
在Xcode5及之前版本中,Xcode的模擬器路徑是:/users/username/library/application support/iphone。
模擬器.在此文件夾中,您可以查看所有模擬器版本。點擊進入後,您可以查看應用程序沙箱。
開發中建議將文件快捷方式拖拽到Finder左側的個人收藏中,可以方便應用沙盒的打開和查看。
在Xcode6中,模擬器的位置已經更改,地址如下:/users/username/library/developer/core simulator。打開後,妳會發現以下情況:
在這裏,蘋果對模擬器進行了編碼,沒有按照模擬器系統版本進行命名和分類,而是區分了Xcode6中的所有模擬器,其中的16文件夾分別對應Xcode6中的16模擬器。
,那怎麽根據這個看似亂碼的文件夾判斷是哪個模擬器呢?
選擇壹個文件後,會看到壹個名為data的文件夾和device.plist的配置文件,打開device.plist的配置文件後,會看到模擬器的UDID、設備類型、系統版本和名稱。通過這個可以知道模擬器的設備和系統版本。打開後會發現前面看起來像亂碼的文件名其實是模擬器的設備UDID。雖然妳可以從這裏得到模擬器的UDID,蘋果也用它來對模擬器進行分類,但是在實際編程中,如果妳想最終發布到APP上
商店,讓我們放棄UDID,這也是蘋果的霸道點。當然也是在保護用戶隱私的情況下做出的。
2.應用沙箱地址的更改
拿到模擬器路徑後,我們還是用了很多不同的,應用的沙箱地址也和以前不壹樣了。
在Xcode5及之前版本中,沙盒地址如下:/users/username/library/application support/iphone。
Simulator/7.0.3/Applications,在應用下,妳會找到應用的沙盒。
打開應用沙箱後,會有應用文件、文檔文件夾、庫文件夾、tmp文件夾。至於這些文件夾的功能,這裏就不贅述了。
在Xcode6中,應用文件、文檔文件夾、庫文件夾和tmp文件夾四個文件放在不同的目錄中。應用文件路徑:/users/username/library/developer/core simulator/devices/emulator UDID/data/Containers/Bundle/,在應用文件夾下;應用文件下的文檔文件夾、庫文件夾、tmp文件夾路徑:/users/username/Library/developer/core simulator/devices/emulator udid/data/containers/data/。可惜這兩個路徑的文件名還是編碼的,同壹應用中的應用文件和D、L、T的文件夾的文件名都不壹樣。只能自己找了。
3.NSUserDefault文件的存儲位置已更改。
NSUserDefault是iOS提供的壹種本地化的數據存儲方式,會自動在沙盒中創建壹個. plist配置文件,保存數據,讀取時用NSDictionary字典接收。
在Xcode5及更早版本中,具體路徑為:/users/shifengwei/library/application support/iphone。
在simulator/7 . 0 . 3/applications/c 9588981-3d 82-49bc-92b 8-f5ba 72185629/library,Preferences文件夾下,名稱為program Bundle。
標識符的Plist文件。在模擬器中刪除程序後,Library文件夾中的plist文件也會相應刪除。
在Xcode6中,程序更改了NSUserDefault創建的plist文件的位置,具體路徑為:/users/username/Library/developer/core simulator/devices/emulator UDID/data/Library,Preferences文件夾。
特別是妳看取景器裏打開的路勁,不是這個樣子,是穿越
Finder,轉到文件夾,通過這個路徑就可以找到。上述路徑地址是通過查看首選項文件夾的顯示配置文件獲得的。
從上面的路徑我們可以看到,NSUserDefault創建的plist文件夾仍然在庫文件下,不同的是實際的存儲位置變了,變成了模擬器的數據庫文件夾下。這個改動帶來的變化是,當我們在模擬器中刪除應用時,plist文件仍然會被保留,不會被刪除。
那麽,既然在模擬器中的位置發生了變化,那麽升級到iOS8後,在這方面有什麽不同呢?先說說在真機中調試的區別。
在1和管理器中,在Xcode5中,有設備、項目、歸檔三欄,而在Xcode6中,設備是單獨拿出來的,和管理器壹樣,在Xcode菜單欄和窗口下。如果妳知道Xcode是從4升級的。x到5,妳就知道當時Organizer也變了,從原來的四欄變成了三欄,幫助文檔也去掉了。
2.調試真機時,會打開應用在真機中的沙箱進行查看。在Xcode中,
打開設備的應用,可以下載應用的沙盒,右鍵顯示包內容查看沙盒的信息。但是iOS8和iOS7與之前還是有區別的。
上圖是不同系統中的同壹個應用。左圖為iOS8下下載的沙盒內容,右圖為iOS7.0.4下下載的沙盒內容,顯然在iOS8下,無法查看通過設備下載的沙盒內容。
我們這裏通過第三方軟件使用iFunBox。找到應用程序後,我們可以打開它並找到沙箱的內容。復制到本地後,我們發現原來的五個文件只有三個,分別是Document文件夾、Library文件夾和tmp文件夾。
特別是,如上所述,在模擬器中,NSUserDefault自動創建的plist文件在軟件刪除後會保留,但在真機中也會被刪除。相應plist文件的路徑會轉到導出的資源庫文件夾下的Preferences文件夾,但在刪除應用程序後,它將不會保留。這應該算是真機和模擬器的區別吧。
這種差異會導致壹種情況。還可以用NSUserDefault嗎?就筆者而言,不會被拋棄。畢竟它只會刪除模擬器中的應用預留,而不會刪除真機中的。而且作為壹個開發中的數據持久化,NSUserDefault在保存數據的時候還是很有用的。當然,有些開發者會不適應這種情況,擔心會出現在真機中。如果有開發者認為不合適,可以在沙盒中創建壹個plist文件來替換。但是,如果在應用程序中使用了許多NSUserDefault,則不推薦使用。畢竟蘋果包裝的NSUserDefault還是很好用的。在模擬器中刪除文件後,您可以刪除保存plist文件的文件夾中的plist文件。只有幾步路。至少目前來看,在真機中還是如此。
當然,在iOS中,除了NSUserDefault會自動生成文件進行數據存儲外,存檔也是如此。由於作者沒有測試過,這裏就不說了,以免誤導。測試後我會總結發布。
PS:最後添加壹個打開或關閉Mac隱藏文件的命令。
打開Mac隱藏文件命令:默認值
編寫com . apple . finder AppleShowAllFiles-bool true
關閉Mac隱藏文件命令:默認值
編寫com . apple . finder AppleShowAllFiles-bool
錯誤的
方法:在終端中,輸入此命令,按enter,然後在強制退出期間重新啟動Finder。