Xcode6發(fā)布后,出現(xiàn)了很多的變動,功能性的變動,在這里不進(jìn)行過多的贅述,在WWDC上蘋果已經(jīng)進(jìn)行了講述,網(wǎng)上也有很多文章,這里要介紹的是一些不太容易發(fā)現(xiàn)的,但很重要的小地方。 1、Xcode6模擬器路徑的變更 在Xcode5和之前的版本中,Xcode的模擬器路徑為:/Users/username/Library/Application Support/iPhone Simulator。在該文件夾下,可以查看到所有的模擬器版本,點進(jìn)去后,可查看應(yīng)用沙盒情況。 在開發(fā)中,建議將文件拖動快捷路徑到Finder左側(cè)個人收藏下,可以方便打開查看應(yīng)用沙盒。 在Xcode6中,將模擬器的位置進(jìn)行了變更,地址如下:/Users/username/Library/Developer/CoreSimulator,打開后會發(fā)現(xiàn)如下情況: 在這里,蘋果對模擬器進(jìn)行了編碼處理,并不是以模擬器系統(tǒng)版本進(jìn)行的命名和分類,而是對Xcode6中所有的模擬器進(jìn)行的區(qū)分,里面的16個文件夾分別對應(yīng)的Xcode6中的16種模擬器 ,那如何根據(jù)這個看似亂碼的文件夾,判斷出是哪一款模擬器呢? 選中某個文件后,打開會看到一個名為data的文件夾,和device.plist的配置文件,打開device.plist的配置文件后,會看到模擬器的UDID、設(shè)備類型、系統(tǒng)版本、名稱等。通過這個可以知道模擬器的設(shè)備和系統(tǒng)版本。打開后,會發(fā)現(xiàn),前面的看似亂碼的文件名稱,其實就是模擬器的設(shè)備UDID,雖然從這里可以得到模擬器的UDID,蘋果也用它來進(jìn)行分類模擬器,但在實際的編程中,如果想最后發(fā)布到APP Store的話,還是放棄UDID吧,這也是蘋果比較霸道的一點,當(dāng)然了也是在保護用戶隱私的情況下做出的。 2、應(yīng)用沙盒地址的變更 得到了模擬器路徑后,還是用很多的不同的,應(yīng)用的沙盒地址也和之前有所不同。 在Xcode5及之前的版本中,沙盒地址為如下:/Users/username/Library/Application Support/iP hone Simulator/7.0.3/Applications,在Applications文加下,會找到應(yīng)用程序的沙盒。 在打開應(yīng)用沙盒后,會有應(yīng)用程序文件、Document文件夾、Library文件夾、tmp文件夾。至于這幾個文件夾的作用不在此做贅述。 在Xcode6中,應(yīng)用程序文件、Document文件夾、Library文件夾、tmp文件夾這四個文件放在了不同的目錄中。應(yīng)用程序文件路徑:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Containers/Bundle/,Application文件夾下;Document文件夾、Library文件夾、tmp文件夾路徑:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Containers/Data/,Application文件下。但是不幸的是,這兩個路徑打開后的文件名,還是經(jīng)過編碼過的,而且,同一個應(yīng)用中的應(yīng)用程序文件和D、L、t文件夾所在的文件夾的文件名是不同的。只能自己找。 3、NSUserDefault 文件存儲位置變更 NSUserDefault是iOS提供的本地化數(shù)據(jù)存儲方式,會在沙盒中自動創(chuàng)建一個.plist的配置文件,將數(shù)據(jù)保存起來,在讀取時,以NSDictionary字典來進(jìn)行接收 在Xcode5及之前的版本中,具體的路徑為:/Users/shifengwei/Library/Application Support/iPhone Simulator/7.0.3/Applications/C9588981-3D82-49BC-92B8-F5BA72185629/Library,Preferences文件夾下,名稱為程序Bundle Identifier的plist文件。在刪除模擬器中的程序后,在Library文件夾下的plist文件會相應(yīng)的刪除。 在Xcode6中,程序?qū)κ褂肗SUserDefault方式創(chuàng)建的plist文件的位置進(jìn)行了更換,具體路徑為:/Users/username/Library/Developer/CoreSimulator/Devices/模擬器UDID/data/Library,Preferences文件夾下。 這里特別說一下,如果按照在Finder里打開的路勁來看,并不是這樣的,但通過 Finder,前往文件夾,通過該路徑查找是可以查到的。上述的路徑地址是通過查看Preferences文件夾的顯示簡介獲得的。 通過上述的路徑可以看出,通過NSUserDefault創(chuàng)建的plist文件夾還是在Library文件下,但不同的是,真正存放的位置變了,成了在模擬器的資料庫文件夾下,這樣的改變所產(chǎn)生的變化就是,當(dāng)我們在刪除模擬器中的應(yīng)用程序后,plist文件還是會保留,并不會刪除。 那么,既然模擬器中的位置變了,那升級到iOS8后,在這方面有什么不同呢?下面就說說在在真機中調(diào)試的不同。 1、Organizer中,在Xcode5中,是Devices、Projects、Archives三欄,而在Xcode6中,單獨將Devices拿了出來,成了和Organizer平級的,在Xcode菜單欄,Window下。如果了解過Xcode從4.X升級到5時,就會知道,Organizer在那個時候也變更過,從原來的四欄變成了三欄,將幫助文檔移除了。 2、在進(jìn)行真機調(diào)試時,會打開真機中應(yīng)用程序的沙盒,進(jìn)行查看,在Xcode中, 打開Devices的Application中,可以下載下來應(yīng)用程序的沙盒,通過右擊顯示包內(nèi)容來查看沙盒的信息。但是在iOS8和iOS7及之前出現(xiàn)了不同。 上圖為同一款應(yīng)用在不同的系統(tǒng)中所表現(xiàn)的,左圖為iOS8下,下載下來的沙盒內(nèi)容,右圖為iOS7.0.4下,下載下來的沙盒內(nèi)容,很顯然,在iOS8下,通過Devices下載的沙盒內(nèi)容無法查看沙盒里面的內(nèi)容。 我們通過第三方的軟件,在這里使用的是iFunBox,找到應(yīng)用程序后,打開發(fā)現(xiàn)可以查看到沙盒的內(nèi)容,復(fù)制到本地后,發(fā)現(xiàn),原本的5個文件,只有3個,也就是Document文件夾、Library文件夾、tmp文件夾三個。 這里特別說一下,上述提到過的,在模擬器中,通過NSUserDefault自動創(chuàng)建的plist文件,在刪除軟件后,還會保留,但在真機中,也是會刪除的,相應(yīng)的plist文件的路徑到了通過導(dǎo)出的Library文件夾下的Preferences文件夾下,刪除應(yīng)用程序后,不會保留。這應(yīng)該算是一個真機和模擬器中的不同。 這個不同會造成一種情況,那是否還可以使用NSUserDefault?就筆者目前來看,還不至于廢棄NSUserDefault,畢竟它只是在模擬器中會出現(xiàn)刪除應(yīng)用保留的情況,在真機中不會,而且NSUserDefault在開發(fā)中,作為數(shù)據(jù)持久化,在保存數(shù)據(jù)時,還是很好用的。當(dāng)然了,也有開發(fā)者會不適應(yīng)這種情況,擔(dān)心在真機中會出現(xiàn),如果有開發(fā)者認(rèn)為不適應(yīng)的話,可以自己創(chuàng)建一個plist文件在沙盒中,代替,但是如果說應(yīng)用中使用的NSUserDefault比較多的話,不建議這樣,畢竟蘋果封裝的NSUserDefault還是很好用的??梢栽谀M器刪除文件后,在保存plist文件的文件夾下,將plist文件刪除即可,多個步驟而已,至少目前來看,在真機中還是和之前一樣的。 當(dāng)然,在iOS中,除了NSUserDefault會系統(tǒng)自動生成文件進(jìn)行數(shù)據(jù)保存外,歸檔也是一樣的,由于筆者沒有進(jìn)行測試,為了避免誤導(dǎo),這里就不說了,待測試后,進(jìn)行總結(jié)發(fā)布。 PS:最后補充一下,打開或關(guān)閉Mac的隱藏文件的命令。 打開Mac隱藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool true 關(guān)閉Mac隱藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool false 方法:在終端中,輸入該命令,回車,然后在強制退出中,重啟Finder,即可。 由于圖片較多,發(fā)表上傳圖片有限制,因此,附上附件,可進(jìn)行下載查看。 Xcode6模擬器路徑pdf.pdf (823 K) 下載次數(shù):591 |
|