将动态创建的文件复制到内置的应用包中

时间:2013-08-16 18:17:21

标签: ios xcode

我有一个文件,我在运行时在iOS项目的${SRCROOT}文件夹中创建。我想复制这个文件,这样当我构建我的应用程序时,它就嵌入在包中。

E.g。

  • 构建应用时,我创建了一个文件xyz.txt
  • 我希望将此文件像普通资源一样复制到应用程序。 MyApp.app/xyz.txt

以下是我的尝试:

我创建了Build Phase - > Run Script以下内容:

  

cp“$ {SRCROOT} /xyz.txt $ {DSTROOT} /xyz.txt

以上内容并未将文件复制到我想要的位置。我查看了this构建变量列表,但我不确定哪一个可以用于我的目的。

如何将创建的xyz.txt文件作为构建阶段复制到主应用程序包?

2 个答案:

答案 0 :(得分:2)

我在这个问题中找到了答案:https://stackoverflow.com/a/7287596/1144632

我最终在Run Script

中使用了以下内容
cp "${SRCROOT}/xyz.txt" "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/xyz.txt"  

答案 1 :(得分:0)

从Xcode 7.3开始,似乎 $ {BUILT_PRODUCTS_DIR} 指向另一个位置,并且您无法使用 NSBundle.pathForResource()

获取文件路径

至少在尝试将plist或某些文件复制到Test bundle中时。

这对我有用(在运行脚本中):

cp "${SRCROOT}/App/Resources/Custom.plist" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MyPlist.plist"