【问题标题】:Xcode iOS Build - copy only specific sub-folders as Bundle ResourcesXcode iOS Build - 仅将特定子文件夹复制为捆绑资源
【发布时间】:2013-12-17 08:01:17
【问题描述】:

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

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

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

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

我发现如果我在 XCode 项目中添加对 Data 的文件夹引用,我无法选择工作区 - 我只能设置与 Data 关联的目标。

可以分别为每个子文件夹添加文件夹引用,但我认为这会破坏我想要实现的目录结构。此外,它似乎变得一团糟......说我不希望两个应用程序中的 all 通用,而是为每个应用程序挑选某些子目录/文件?

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

【问题讨论】:

    标签: ios xcode xcode4


    【解决方案1】:

    选项 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

    【讨论】:

    • 我不清楚,因为我不太了解 XCode/OSX - 这是否仅适用于 iOS 或 OSX?
    • 如果您小心地将它们引用地添加到构建阶段,它不会破坏目录结构。
    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 2019-07-02
    • 2016-12-31
    • 1970-01-01
    • 2015-12-24
    • 2012-06-25
    • 2019-02-08
    • 1970-01-01
    相关资源
    最近更新 更多