Xcode iOS Build - 仅将特定子文件夹复制为Bundle Resources

时间:2013-12-01 16:18:42

标签: ios xcode xcode4

我之前就此问题与Xcode进行过斗争,我想在其中添加要复制到内置app-package的文件和目录列表,而XCode只想让我添加整个文件夹。现在我需要一个合适的解决方案......

我有一个包含多个目标的工作区,每个应用程序一个。我有一个目录结构,其中包含大量资产/数据文件,结构如下:

- Data
  |- Common
  |  |-Scripts
  |  |-Images
  |- AppA
  |  |-Scripts
  |  |-Images
  |- AppB
  |  |-Scripts
  |  |-Images

我想将Data / Common / *添加到我的目标AppA& AppB,然后是Data / AppA / *到AppA等。

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

可以单独为每个子文件夹添加文件夹引用,但我认为这会破坏我想要实现的目录结构。此外,它似乎变得混乱...说我不想在两个应用程序中所有的Common,而是为每个应用程序挑选某些子目录/文件?

那么,在XCode [4]中有一个更随意的方式告诉它哪些文件去哪里?我知道我可以编写一个自定义的bash-script构建阶段,事实上我曾经这样做,但它对于构建性能来说真的很糟糕。

1 个答案:

答案 0 :(得分:0)

选项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,如下所示:

Making OS X Installer Packages like a Pro - Xcode Developer ID ready pkg