【转】Xcode6 模拟器路径
原文网址:http://www.cocoachina.com/bbs/read.php?tid-231024.html
Xcode6发布后,出现了很多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有很多文章,这里要介绍的是一些不太容易发现的,但很重要的小地方。
1、Xcode6模拟器路径的变更
在Xcode5和之前的版本中,Xcode的模拟器路径为:/Users/username/Library/Application Support/iPhone Simulator。在该文件夹下,可以查看到所有的模拟器版本,点进去后,可查看应用沙盒情况。
在开发中,建议将文件拖动快捷路径到Finder左侧个人收藏下,可以方便打开查看应用沙盒。
在Xcode6中,将模拟器的位置进行了变更,地址如下:/Users/username/Library/Developer/CoreSimulator,打开后会发现如下情况:
在这里,苹果对模拟器进行了编码处理,并不是以模拟器系统版本进行的命名和分类,而是对Xcode6中所有的模拟器进行的区分,里面的16个文件夹分别对应的Xcode6中的16种模拟器 ,那如何根据这个看似乱码的文件夹,判断出是哪一款模拟器呢?
选中某个文件后,打开会看到一个名为data的文件夹,和device.plist的配置文件,打开device.plist的配置文件后,会看到模拟器的UDID、设备类型、系统版本、名称等。通过这个可以知道模拟器的设备和系统版本。打开后,会发现,前面的看似乱码的文件名称,其实就是模拟器的设备UDID,虽然从这里可以得到模拟器的UDID,苹果也用它来进行分类模拟器,但在实际的编程中,如果想最后发布到APP Store的话,还是放弃UDID吧,这也是苹果比较霸道的一点,当然了也是在保护用户隐私的情况下做出的。
2、应用沙盒地址的变更
得到了模拟器路径后,还是用很多的不同的,应用的沙盒地址也和之前有所不同。
在Xcode5及之前的版本中,沙盒地址为如下:/Users/username/Library/Application Support/iP hone Simulator/7.0.3/Applications,在Applications文加下,会找到应用程序的沙盒。
在打开应用沙盒后,会有应用程序文件、Document文件夹、Library文件夹、tmp文件夹。至于这几个文件夹的作用不在此做赘述。
在Xcode6中,应用程序文件、Document文件夹、Library文件夹、tmp文件夹这四个文件放在了不同的目录中。应用程序文件路径:/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文件下。但是不幸的是,这两个路径打开后的文件名,还是经过编码过的,而且,同一个应用中的应用程序文件和D、L、t文件夹所在的文件夹的文件名是不同的。只能自己找。
3、NSUserDefault 文件存储位置变更
NSUserDefault是iOS提供的本地化数据存储方式,会在沙盒中自动创建一个.plist的配置文件,将数据保存起来,在读取时,以NSDictionary字典来进行接收
在Xcode5及之前的版本中,具体的路径为:/Users/shifengwei/Library/Application Support/iPhone Simulator/7.0.3/Applications/C9588981-3D82-49BC-92B8-F5BA72185629/Library,Preferences文件夹下,名称为程序Bundle Identifier的plist文件。在删除模拟器中的程序后,在Library文件夹下的plist文件会相应的删除。
在Xcode6中,程序对使用NSUserDefault方式创建的plist文件的位置进行了更换,具体路径为:/Users/username/Library/Developer/CoreSimulator/Devices/模拟器UDID/data/Library,Preferences文件夹下。
这里特别说一下,如果按照在Finder里打开的路劲来看,并不是这样的,但通过 Finder,前往文件夹,通过该路径查找是可以查到的。上述的路径地址是通过查看Preferences文件夹的显示简介获得的。
通过上述的路径可以看出,通过NSUserDefault创建的plist文件夹还是在Library文件下,但不同的是,真正存放的位置变了,成了在模拟器的资料库文件夹下,这样的改变所产生的变化就是,当我们在删除模拟器中的应用程序后,plist文件还是会保留,并不会删除。
那么,既然模拟器中的位置变了,那升级到iOS8后,在这方面有什么不同呢?下面就说说在在真机中调试的不同。
1、Organizer中,在Xcode5中,是Devices、Projects、Archives三栏,而在Xcode6中,单独将Devices拿了出来,成了和Organizer平级的,在Xcode菜单栏,Window下。如果了解过Xcode从4.X升级到5时,就会知道,Organizer在那个时候也变更过,从原来的四栏变成了三栏,将帮助文档移除了。
2、在进行真机调试时,会打开真机中应用程序的沙盒,进行查看,在Xcode中, 打开Devices的Application中,可以下载下来应用程序的沙盒,通过右击显示包内容来查看沙盒的信息。但是在iOS8和iOS7及之前出现了不同。
上图为同一款应用在不同的系统中所表现的,左图为iOS8下,下载下来的沙盒内容,右图为iOS7.0.4下,下载下来的沙盒内容,很显然,在iOS8下,通过Devices下载的沙盒内容无法查看沙盒里面的内容。
我们通过第三方的软件,在这里使用的是iFunBox,找到应用程序后,打开发现可以查看到沙盒的内容,复制到本地后,发现,原本的5个文件,只有3个,也就是Document文件夹、Library文件夹、tmp文件夹三个。
这里特别说一下,上述提到过的,在模拟器中,通过NSUserDefault自动创建的plist文件,在删除软件后,还会保留,但在真机中,也是会删除的,相应的plist文件的路径到了通过导出的Library文件夹下的Preferences文件夹下,删除应用程序后,不会保留。这应该算是一个真机和模拟器中的不同。
这个不同会造成一种情况,那是否还可以使用NSUserDefault?就笔者目前来看,还不至于废弃NSUserDefault,毕竟它只是在模拟器中会出现删除应用保留的情况,在真机中不会,而且NSUserDefault在开发中,作为数据持久化,在保存数据时,还是很好用的。当然了,也有开发者会不适应这种情况,担心在真机中会出现,如果有开发者认为不适应的话,可以自己创建一个plist文件在沙盒中,代替,但是如果说应用中使用的NSUserDefault比较多的话,不建议这样,毕竟苹果封装的NSUserDefault还是很好用的。可以在模拟器删除文件后,在保存plist文件的文件夹下,将plist文件删除即可,多个步骤而已,至少目前来看,在真机中还是和之前一样的。
当然,在iOS中,除了NSUserDefault会系统自动生成文件进行数据保存外,归档也是一样的,由于笔者没有进行测试,为了避免误导,这里就不说了,待测试后,进行总结发布。
PS:最后补充一下,打开或关闭Mac的隐藏文件的命令。
打开Mac隐藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool true
关闭Mac隐藏文件命令:defaults write com.apple.finder AppleShowAllFiles -bool false
方法:在终端中,输入该命令,回车,然后在强制退出中,重启Finder,即可。
【转】Xcode6 模拟器路径的更多相关文章
- Xcode6 模拟器路径
Xcode6公布后,出现了非常多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有非常多文章,这里要介绍的是一些不太easy发现的,但非常重要的小地方. ...
- Xcode6.1 模拟器路径
Xcode 5的iOS模拟器的应用的目录是在~/Library/Application Support/iPhone Simulator/<iOS_Version>/Application ...
- Xcode 7.3.1的模拟器路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Core ...
- Xcode6:模拟器消失了?
今天打开Xcode,选择模拟器时发现只剩下了“iPhone 5”和“iPhone 5s”,原来什么“iPad Air”,“iPhone 4s”的都哪里去了?丢了? 别着急,依次打开“Xcode-> ...
- Android开发2021.3.9日【模拟器路径】【外观字体】【简单快捷键】
一. 1.模拟器存储路径 D:\Android\SDK\platforms(在本人的dell上) 2.使用软件 Android Studio4.2 3.注意事项 (1)修改JDK的路径为自己下载的JD ...
- Xcode 6 模拟器路径
原文地址:http://leancodingnow.com/xcode-6-simulator-folder/ 本文主要介绍一下Xcode 6的iOS模拟器的应用目录的变化. Xcode 5的iOS模 ...
- Xcode6 模拟器不显示键盘
在学习加法计算器时,程序运行后发现点击模拟器上的输入框时有时候键盘可以弹出来,有时候又弹不出来. 网上查询结果只需要在模拟器的菜单中找到hardware -> keyboard -> 取消 ...
- ios 查看模拟器路径以及应用的文件夹
模拟器文件查看 好,这个时候选择往模拟器上面调试程序: 运行模拟器: 打开Finder,按住option,在菜单栏中选择“前往”->“资源库” 如果没发现资源库,则使用终端 命令行输入 ope ...
- Xcode6模拟器时BUG导致键盘无法弹出
Xcode 6.X版本可能会出现虚拟键盘无法调出,并在控制台出现如下提示:Can't find keyplane that supports type 5 for keyboard iPhone-Po ...
随机推荐
- lintcode:打劫房屋
题目 打劫房屋 假设你是一个专业的窃贼,准备沿着一条街打劫房屋.每个房子都存放着特定金额的钱.你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动 ...
- lintcode:二叉树的路径和
题目 给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径. 一个有效的路径,指的是从根节点到叶节点的路径. 解题 下面有个小bug 最后比较的时候是叶子节点为空,左右都有叶子结点,所 ...
- Grub命令行
今天电脑无缘无故无法正常启动,只提示 GRUB> 看来是GRUB引导出问题了,要解决下. 先 想到用制作U盘启动盘来启动,参照网上的方法,很简单用USBBOOT软件做了一个U盘启动盘,按F11在 ...
- Android中级之网络数据解析一之xml解析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! --Comic Sans MS Xml解析具有跨平台性,语言无关性,易操作性,因此广受开发者的欢迎. ...
- 【原创】【Android New Features】—— 关于ADT 17的BuildConfig.DEBUG
在日常开发中,我们使用android.util.Log来打印日志,方便我们的开发调试.但是在打包发布时,需要手工把Log关闭,多少会有些不便,而且不排除打包者忘记关闭Log的情况.那么有没 ...
- ASP.NET 在IIS7.5下自定义404错误页面的方法
.net 4.0 本机调试时一切正常,配置如下 <customErrors redirectMode="ResponseRewrite" mode="On& ...
- OpenCV4Android——No implementation found for native Lorg/opencv/core/Mat;.n_Mat ()J
ok 12-17 08:13:10.461: W/dalvikvm(540): No implementation found for native Lorg/opencv/core/Mat;.n_M ...
- 【CCS仿真】如何将CCS仿真时memory中的数据以Hex、Integer、 Long 、Float、 Addressable Unit类型保存到PC
2013-12-04 19:07:05 将在CCS中仿真的数据导入电脑上时,可以选择不同的数据类型,以便分析,具体方法如下: 在CCS菜单中,选择File—>Data—>Save,弹出以下 ...
- git merge简介【转】
转自:http://blog.csdn.net/hudashi/article/details/7664382 git merge的基本用法为把一个分支或或某个commit的修改合并现在的分支上.我们 ...
- 在LINUX上创建GIT服务器【转】
转自:http://blog.csdn.net/xiongmc/article/details/9176785 如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. Cli ...