iOS8之前访问沙盒的路径,通过NSHomedictionary()获取的家路径 /Users/xxxx/Library/Application Support/iPhone Simulator/7.1/Applications/F9093824FF-6D4C-4D73-884A-696514481F7C/Library/Caches/...
iOS8之后,Apple在iOS8中对数据和包都进行了分离,并且采用最新的沙盒机制,数据部分,也就是library和Document的沙盒(文件夹)的名字每一次重启App都会发生改变,增加了安全性,但是分离出数据部分,不通的APP可以共享数据。
在iOS8之后,家路径和Bundle路径进行了分离,也就是说在模拟器中,Bundle包路径和Document library所在的路径完全不一样了
下图是Bundle路径
/Users/xxxx/Library/Developer/CoreSimulator/Devices/3CA7C0E0-DA14-4B4A-BE45-07DB50550CBE/data/Containers/Bundle/Applicatio
下图是Document 和library所在的路径
/Users/xxxx/Library/Developer/CoreSimulator/Devices/3CA7C0E0-DA14-4B4A-BE45-07DB50550CBE/data/Containers/Data/Application/1AD7E144-B715-412F-8490-433C58F10C25
在iOS8之前,我们获取到沙盒中的document、cache、tmp之后,下一次模拟器或真机无论怎样重启,路径是固定的了;只要应用不删除,那么这个路径就一直是这个(下面我们以Library为例介绍)。
/Users/xxxx/Library/Application Support/iPhone Simulator/7.1/Applications/F9093824FF-6D4C-4D73-884A-696514481F7C/Library/Caches/...
在iOS8之后,苹果可能考虑到安全因素,应用每一次重启,沙盒路径都动态的发生了变化。虽然iOS8之后,沙盒的路径发生了变化,但是并不代表你原来沙盒路径中的数据发生了变化;同时,也并不代表路径会越来越多。
iOS8中第一次启动时的路径:
/Users/xxxx/Library/Developer/CoreSimulator/Devices/B9F35720-6386-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/D73211C2-497C-4C92-828C-584955C23BCB/Library/Documents
iOS8中第二次启动时的路径:
/Users/xxxx/Library/Developer/CoreSimulator/Devices/B9F35720-6386-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/2B080462-8330-440E-AC26-B9B15E065110/Library/Documents
苹果会把你上一个路径中的数据转移到你新的路径中。你上一个路径也会被苹果毫无保留的删除,只保留最新的路径。
以上仅是个人遇到的问题,如有不妥之处大家批评指正。