从Xcode在设备运行应用时,原有应用安装数据会如何变化?
Xcode在物理设备上重新运行应用时,Documents目录数据的变化
作为iOS开发老鸟,我来给你把这个基础问题讲得明明白白~
首先分两种最常见的场景来说:
1. 直接点击Xcode运行按钮(常规修复bug后重新运行)
这种情况下,你之前存在Documents目录的照片会完完整整保留下来。
原因很简单:Xcode这时候做的是「增量更新」——它只会替换应用的可执行文件(就是你修复bug后编译出来的新代码)和需要更新的资源文件(比如新的图片、修改后的Info.plist),但完全不会触动应用的沙盒目录。而Documents作为沙盒里专门存储用户生成数据的文件夹,属于应用的「持久化数据区」,只会在应用被彻底删除时才会被清空。
举个例子:你第一次运行拍了3张照片存在Documents,修复bug后再运行,打开应用依然能看到这3张照片,甚至你还能继续拍新的照片追加进去。
2. 手动删除设备上的应用后,再从Xcode运行
这种情况就不一样了——当你删除设备上的应用时,系统会把这个应用对应的整个沙盒目录(包括Documents、Library、tmp等所有文件夹)彻底删除。这时候重新从Xcode安装运行,相当于一个全新的应用,Documents目录是空的,之前的照片自然就没了。
额外需要注意的特殊场景
还有几种少见但可能遇到的情况,也会导致数据被清除:
- 如果你修改了应用的
Bundle ID,Xcode会把它当成一个全新的应用,之前的旧应用会被删除,沙盒数据也会丢失; - 如果你在Xcode的「Devices and Simulators」窗口里,选中你的应用后点击「Delete App」,再重新运行,数据也会被清空;
- 极少数情况下,Xcode构建时出现异常(比如签名冲突),会自动删除旧应用再重新安装,这时候数据也会丢失,但这种情况很少见,Xcode一般会提前提示你。
怎么验证数据是否保留?
如果你想确认Documents里的文件还在不在,可以用Xcode的「Devices and Simulators」工具:
- 连接你的物理设备,打开Xcode,点击顶部菜单的「Window」→「Devices and Simulators」;
- 在左侧列表选中你的设备,找到你的应用;
- 点击应用条目下方的「Download Container」,把沙盒下载到本地;
- 右键下载的
.xcappdata文件,选择「Show Package Contents」,就能看到Documents目录里的所有文件了。
内容的提问来源于stack exchange,提问作者bmt22033
相关产品推荐
相关产品推荐

