如何在Xcode中按值复制文件而非仅复制引用?
现象产生原因
往Xcode项目拖入文件时如果没手动修改默认配置,Xcode不会把文件本体拷贝到项目目录里,只会在项目配置中记录原始文件的存放路径,生成一个指向原位置的引用。这时候项目里显示的文件本质就是个快捷入口,你把原始位置的文件删了,Xcode找不到对应路径的源文件,项目里的对应文件自然就跟着失效、显示丢失。
把文件本体复制到项目的正确操作
- 拖入阶段正确配置:从访达选好要加的文件/文件夹,拖到Xcode左侧的项目导航栏,在弹出的添加窗口里做好3个设置:
- 勾选Copy items if needed,这是让Xcode把文件复制进项目目录的核心选项
- Added folders分类下选「Create groups」,别选「Create folder references」。前者生成的是黄色文件夹图标,会把文件真正纳入项目编译管理;后者生成蓝色文件夹图标,本质还是路径引用,不会复制内容
- 在Add to targets列表里勾选这个文件要关联的编译目标,避免后续编译时报找不到文件的错误
设置完点「Add」即可,此时文件已经被拷贝到项目目录里,之后删除原始位置的文件不会对项目内的内容产生任何影响。
- 已经加错引用的补救方法:要是之前已经把文件以引用形式加进项目了,先在Xcode左侧导航栏选错加的引用文件,按Delete键之后选「Remove Reference」——千万别选「Move to Trash」,不然会直接把原位置的文件删掉。删完引用之后按照上面说的正确配置流程重新拖入文件就好。
- 校验是否复制成功:加完文件右键点Xcode里的对应文件,选「Show in Finder」,要是弹出来的访达窗口路径属于你自己的项目存储目录,就说明文件本体已经成功复制到项目里了。
注意:加资源文件夹的时候一定要确认生成的是黄色group图标,蓝色的reference文件夹永远是路径关联状态,不会把文件夹里的资源拷到项目目录。
内容的提问来源于stack exchange,提问作者Fred
相关产品推荐
相关产品推荐

