如何在Files App可见的On My iPhone/On My iPad中创建应用专属文件夹?
嘿,这个问题我刚好研究过——要在Files的「On My iPhone/iPad」下创建带图标的专属应用文件夹,其实是靠iOS/macOS的**文件提供者框架(File Provider Framework)**实现的,不是手动建普通文件夹那种逻辑。下面给你拆解具体步骤和关键细节:
核心逻辑说明
首先得明确:这种带自定义图标的专属文件夹,是系统通过文件提供者扩展识别出来的专属入口,不是随便建个文件夹就能实现的,得在Xcode里做相应的配置和开发。
具体操作步骤
1. 添加文件提供者扩展目标
- 打开你的Xcode项目,点击顶部菜单「File」→「New」→「Target」,搜索「File Provider Extension」,跟着向导完成添加。
- 这个扩展就是让iOS系统认出你的应用,并在Files里生成专属文件夹入口的核心。
2. 配置扩展的Info.plist
- 找到刚添加的扩展目标里的
Info.plist文件,检查NSExtension节点下的NSExtensionPointIdentifier,需要包含com.apple.fileprovider(核心服务)和com.apple.fileprovider-ui(用于UI显示)这两个值。 - 新增
FileProvider相关配置:比如FPProviderDomain(给你的文件夹设一个唯一的域名标识,比如com.yourcompany.yourapp.files),FPDisplayName(就是在Files里显示的文件夹名称)。
3. 设置自定义文件夹图标
- 在扩展的
Assets.xcassets里添加你的专属图标(建议用和主App图标风格一致的图标,用户辨识度更高)。 - 回到
Info.plist,添加FPProviderIcon键,值指向你刚才添加的图标资源,这样Files里的文件夹就会显示你的自定义图标了。
4. 实现核心文件操作逻辑
- 你需要在扩展的
FileProvider类里实现几个关键方法:比如enumerator(for:)用来让系统枚举文件夹里的内容,createItem(at:withContents:options:completionHandler:)用来处理文件创建等操作。 - 这些方法是让你的文件夹能正常读写文件的基础,系统会通过这些接口和你的主应用交互。
5. 配置主应用的权限
- 在主应用的
Info.plist里添加UIFileSharingEnabled并设置为YES,开启应用的文件共享能力。 - 一定要保证主应用和扩展的Team ID完全一致,不然会出现权限验证失败的问题。
额外注意点
- 这种专属文件夹是和你的应用绑定的,卸载应用后,这个文件夹也会被系统移除。
- 如果只是想快速测试效果,可以先只实现最基础的枚举方法,让系统能识别到你的文件夹,后续再慢慢完善读写逻辑。
- 苹果官方文档里虽然没有直接用“创建带图标文件夹”这种直白的描述,但File Provider Framework的文档完全覆盖了所有相关配置,你可以在Xcode的内置文档里搜索「File Provider Framework」找到详细说明。
内容的提问来源于stack exchange,提问作者James Cramer




