【问题标题】:How can I refer to the first file in an .xcfilelist within an Xcode build script?如何在 Xcode 构建脚本中引用 .xcfilelist 中的第一个文件?
【发布时间】:2022-12-25 04:41:45
【问题描述】:

如何在 Xcode 构建脚本中引用 .xcfilelist 中的第一个文件?

如果我单独列出文件(而不是使用 .xcfilelist),那么我当然可以使用 SCRIPT_OUTPUT_FILE_0。但是,如果我改用 .xcfilelist,那么如何引用第一个输出文件?

我们首先要使用 .xcfilelist 的唯一原因是 Xcode 不会在我们每次运行编译时重新运行脚本并重建模块。然而,这正是它正在做的......它似乎忽略了输出文件列表的 .xcfilelist 中指定的内容,并且总是重新生成这些文件,然后重新编译它们,即使没有任何改变。

看起来像是 Xcode 错误,但我想也许我们可以通过引用文件列表中的第一个文件来比较脚本开头的修改时间,但我似乎找不到这样做的方法。

【问题讨论】:

    标签: xcode xcode13


    【解决方案1】:

    如果你想遍历所有xcfilelists 中的所有行,那么这个简单的脚本可以做到:

    for index in $(seq $SCRIPT_INPUT_FILE_LIST_COUNT); do
        # 1 => `SCRIPT_INPUT_FILE_LIST_0`
        filelist=SCRIPT_INPUT_FILE_LIST_$((index-1))
        # `SCRIPT_INPUT_FILE_LIST_0` => value in $SCRIPT_INPUT_FILE_LIST_0
        filelist_path=${!filelist}
    
        while read -r file_path; do
            echo "${file_path}"
        done <$filelist_path
    done
    

    它将动态构造 SCRIPT_INPUT_FILE_LIST_0SCRIPT_INPUT_FILE_LIST_1 等值,并从 Xcode 传递给脚本的环境变量中访问它们。

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2018-08-26
      相关资源
      最近更新 更多