将文件添加到多个Target会增大二进制体积及占用磁盘空间吗?
多Target共享大文件的磁盘占用说明
首先明确核心结论:项目本地目录里的源文件只会存储一份,不会因为添加到多个Target就占用双倍磁盘空间。
但在构建阶段,Xcode默认行为是将该文件分别复制到每个Target的构建产物包中(比如主App的.app和NotificationService的.appex),这会带来两方面的空间占用情况:
- 本地开发磁盘:源文件仅一份,但构建后的产物目录里会生成多个文件副本,这部分会占用额外空间,但源文件本身不会重复存储。
- 设备端/分发包:每个Target的最终安装包都会包含该文件的独立副本,所以设备上会对应占用多份空间。
关于符号链接:Xcode不会自动为多Target共享的文件创建符号链接来优化存储。如果要手动通过符号链接替代复制,需要自定义构建脚本,但这种做法要谨慎——苹果App Store审核要求包内文件必须能独立运行,符号链接可能不符合合规要求,尤其是像NotificationService这类App Extension,必须包含自身运行所需的全部文件。
总结
- 项目源文件:仅单份存储,无额外空间占用
- 构建产物/安装包:每个Target各存一份,会占用对应多份空间
- Xcode默认不自动使用符号链接优化,手动配置需注意审核合规性
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

