iOS 17中开发者如何访问自有应用的Application Support目录?
如何在iOS 17设备上访问自有应用的Application Support目录内容?
问题背景
在iOS 16及更早版本中,可通过以下步骤访问应用的Application Support目录:
- 打开Xcode的「Devices and Simulators」窗口,选择已连接设备和目标应用,下载容器
- 在Finder中右键容器选择「显示包内容」,进入
AppData > Library > Application Support路径查看内容
但该方法在iOS 17.1设备搭配Xcode 15.0.1时失效:下载的容器内Library文件夹仅包含Caches、Saved Application State、WebKit子文件夹,无Application Support目录,而应用已通过SearchPathDirectory.applicationSupportDirectory成功写入该路径且无异常。
问题解答
Application Support目录并未迁移,故障源于Xcode 15的容器下载功能:受iOS 17的沙盒权限机制更新影响,下载的容器未包含Application Support目录,并非该目录位置变更。
可行的外部访问方法:
- 方法一:通过Xcode调试实时查看
- 打开Xcode「Devices and Simulators」窗口(快捷键
Shift+Command+2),下载目标应用的容器 - 保持Xcode与设备连接,切换到「Debug Navigator」,选择「Storage」选项,即可直接浏览应用沙盒内的
Library/Application Support目录及文件
- 打开Xcode「Devices and Simulators」窗口(快捷键
- 方法二:应用内临时导出
- 在应用中添加文件导出逻辑,利用系统文档选择器将Application Support目录下的文件导出到外部(如「文件」App),示例代码:
guard let appSupportURL = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else { return } let picker = UIDocumentPickerViewController(forExporting: [appSupportURL], asCopy: true) picker.delegate = self present(picker, animated: true)
- 在应用中添加文件导出逻辑,利用系统文档选择器将Application Support目录下的文件导出到外部(如「文件」App),示例代码:
- 方法三:通过加密备份提取
- 用Finder(macOS Catalina+)或iTunes连接设备,创建加密本地备份(未加密备份不会包含应用沙盒数据)
- 使用备份管理工具打开备份,定位到目标应用,即可访问
Library/Application Support目录
内容的提问来源于stack exchange,提问作者pommy
相关产品推荐
相关产品推荐

