[√]xcode如何自定义将不同位置的本地文件copy到app的指定目录

515 阅读3分钟

xcode build的时候,会卡在这里非常多的时间

image.png

对应的配置 image.png 其实就是在执行这个shell脚本

find ${SRCROOT}/../../../src/ -name "*" -exec touch -cm {} \;
find ${SRCROOT}/../../../res/ -name "*" -exec touch -cm {} \;

该命令用于在指定目录下查找所有文件,并修改它们的修改时间为当前时间

touch -cm是一个用于修改文件的访问时间(access time)和修改时间(modification time)为当前时间的命令。

  • -c 选项表示只在文件不存在或有变化时才进行修改,如果文件已经存在且没有发生变化,则不会修改其时间。
  • -m 选项表示只修改文件的修改时间,而不修改访问时间。如果不使用该选项,则访问时间和修改时间都会被修改为当前时间。

因为文件数量非常多,所以非常耗时

group

image.png

image.png

  • new group: 会产生一个本地文件夹

image.png

  • new group without folder:不会产生本地文件夹,但是颜色会标识为红色

image.png

这些不会再app里面产生新的文件夹,都是直接将group里面的内容copy到根目录

这个效果不是我想要的

解决办法

build phases中添加一个copy file,注意subpath

image.png

最终在app里面发现目录结构如预期所示

image.png

其实resources那边无所谓加不加,只要build phases正确配置接口

Destination

在 Xcode 的 "Build Phases" 中的 "Copy Files" 功能可以用来将特定文件或文件夹复制到应用程序的某个特定位置。在 "Copy Files" 部分,你可以选择不同的目标以及指定文件的来源和目标路径。

下面是 "Copy Files" 部分中 "Destination" 选项的含义:

  • Absolute Path(绝对路径):将文件复制到指定的绝对路径。你需要提供完整的文件路径,包括文件名和文件夹路径。

  • Products Directory(产品目录):将文件复制到 Xcode 生成的产品目录中。这通常是在模拟器或设备上调试运行时的默认位置。

  • Wrapper(包装):将文件复制到应用程序的包装目录中。这是应用程序的主要目录,其中包含了应用程序的可执行文件和资源。

  • Frameworks(框架):将文件复制到应用程序的 Frameworks 目录中。这个目录通常用于存放应用程序依赖的外部库和框架文件。

  • Resources(资源):将文件复制到应用程序的资源目录中。这个目录通常用于存放应用程序所需的资源文件,如图像、音频、配置文件等。

  • Executables(可执行文件):将文件复制到应用程序的可执行文件目录中。这个目录通常用于存放应用程序的可执行文件和脚本。

  • Shared Frameworks(共享框架):将文件复制到应用程序的共享 Frameworks 目录中。这个目录通常用于存放被多个应用程序共享的框架文件。