新版 Xcode 工程中,包外存储(文件共享)选项的 GUI 入口被移除,需要手动修改 Info.plist 才能开启,方便在开发测试阶段通过 Finder / iTunes 访问应用沙盒中的文件。

背景

iOS 应用默认将数据存储在沙盒中,外部无法直接访问。开启文件共享后,用户可以通过 macOS Finder 或 iTunes 直接读写应用 Documents 目录下的文件,常用于:

  • 测试阶段导出日志、存档文件
  • 验证应用写入的资源是否正确

配置方法

方法一:直接修改 Info.plist 源码

打开 Xcode 工程中的 Info.plist,右键选择 Open As → Source Code,在 <dict> 内添加以下两个键:

<!-- 开启 iTunes/Finder 文件共享,允许访问 Documents 目录 -->
<key>UIFileSharingEnabled</key>
<true/>

方法二:通过 Xcode 属性编辑器添加

  1. 在 Xcode 中打开 Info.plist(默认的图形化编辑器)
  2. 点击任意行末尾的 + 按钮新增条目
  3. 搜索并选择 Application supports iTunes file sharing,值设为 YES
  4. 可选:再添加 Supports opening documents in place,值设为 YES

Unity 项目注意事项

Unity 导出 Xcode 工程时,每次导出会覆盖 Info.plist,导致手动添加的配置丢失。

推荐使用 后处理脚本自动写入,在 Editor 目录下创建脚本:

using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;

public class IOSFileSharingPostProcess
{
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget target, string path)
{
if (target != BuildTarget.iOS) return;

string plistPath = Path.Combine(path, "Info.plist");
PlistDocument plist = new PlistDocument();
plist.ReadFromFile(plistPath);

plist.root.SetBoolean("UIFileSharingEnabled", true);
plist.root.SetBoolean("LSSupportsOpeningDocumentsInPlace", true);

plist.WriteToFile(plistPath);
}
}

访问方式

开启后,通过以下方式在电脑端访问应用文件:

  • macOS Finder:连接 iPhone → 在 Finder 侧边栏选择设备 → 切换到「文件」标签 → 找到对应应用
  • iTunes(Windows):设备 → 应用 → 文件共享 → 选择应用