Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode iOS构建-仅将特定子文件夹复制为捆绑资源_Ios_Xcode_Xcode4 - Fatal编程技术网

Xcode iOS构建-仅将特定子文件夹复制为捆绑资源

Xcode iOS构建-仅将特定子文件夹复制为捆绑资源,ios,xcode,xcode4,Ios,Xcode,Xcode4,在这方面,我曾经与Xcode进行过斗争,我想添加一个要复制到内置应用程序包中的文件和目录列表,而Xcode只想让我添加整个文件夹。现在我需要一个合适的解决方案 我有一个具有多个目标的工作区,每个应用程序一个目标。我有一个目录结构,有很多资产/数据文件,结构有点像这样: - Data |- Common | |-Scripts | |-Images |- AppA | |-Scripts | |-Images |- AppB | |-Scripts |

在这方面,我曾经与Xcode进行过斗争,我想添加一个要复制到内置应用程序包中的文件和目录列表,而Xcode只想让我添加整个文件夹。现在我需要一个合适的解决方案

我有一个具有多个目标的工作区,每个应用程序一个目标。我有一个目录结构,有很多资产/数据文件,结构有点像这样:

- Data
  |- Common
  |  |-Scripts
  |  |-Images
  |- AppA
  |  |-Scripts
  |  |-Images
  |- AppB
  |  |-Scripts
  |  |-Images
我想将Data/Common/*添加到我的目标AppA和AppB,然后将Data/AppA/*添加到AppA,等等

我发现,如果我将数据的文件夹引用添加到我的XCode项目中,我将无法选择工作空间-我只能设置与数据关联的目标

我可以单独为每个子文件夹添加文件夹引用,但我认为这会破坏我想要实现的目录结构。而且,它似乎变得一团糟。。。假设我不想在两个应用程序中都使用相同的内容,但要为每个应用程序选择特定的子目录/文件

那么,在XCode[4]中有没有更随意的方法来告诉它哪些文件去了哪里?我知道我可以在构建阶段编写自定义bash脚本,事实上我曾经这样做过,但这对构建性能非常不利。

选项1)创建bash安装程序并对主项目内的路径进行硬编码:

## Compression Script
mkdir -vp installer/payload
cd installer/
tar tvf files.tar
echo "Running Installer"
mkdir $HOME/files
tar ./files.tar -C $HOME/files

## Decompression Script
#!/bin/bash
echo ""
echo "Self Extracting Installer"
echo ""

export TMPDIR=`mktemp -d /tmp/selfextract.XXXXXX`

ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`

tail -n+$ARCHIVE $0 | tar xzv -C $TMPDIR

CDIR=`pwd`
cd $TMPDIR
./installer

cd $CDIR
rm -rf $TMPDIR

exit 0

__ARCHIVE_BELOW__
选项2)使用pkgbuild、productbuild和pkgutil,如下所示:


我不太清楚,因为我对XCode/OSX不太了解-这只适用于iOS还是OSX?如果仔细地将它们添加到构建阶段,它不会破坏目录结构。