【问题标题】:Xcode - build setting "EXCLUDED_SOURCE_FILE_NAMES" not workingXcode - 构建设置“EXCLUDED_SOURCE_FILE_NAMES”不起作用
【发布时间】:2018-08-25 21:40:04
【问题描述】:

我正在尝试从我的项目 (Xcode9) 中排除一些 .swift 和 .storyboard 文件,以便使用 EXCLUDED_SOURCE_FILE_NAMES 进行发布构建。 但它不适合我。

是否可以给任何文件夹名称以完全排除它? 如何给多个文件和文件夹名称?

如果我给出 ../ForlderName/* 之类的路径,则它不起作用。

文件夹与我的项目处于同一级别。

是否也可以排除子文件夹文件?

如果我的层次结构是,我可以排除

MyProject Folder
 |_
   MyProject Folder 
    |_FolderToBeExcluded

如果我给了 FolderToBeExcluded/* 它正在工作,但 FolderToBeExcluded 的子文件夹中的文件没有被排除。

如果我的heirachy是这样的(即要排除的文件夹和项目文件夹都在同一级别)

FolderToBeExcluded
MyProject Folder
 |_
   MyProject Folder

如果我给 ../FolderToBeExcluded/ 或 $(SRCROOT)/../FolderToBeExcluded/ 两者都不工作

如果我直接给出要排除的文件名中的任何一个,它将被排除而不给出完整路径。

EXCLUDED_SOURCE_FILE_NAMES的限制吗?

【问题讨论】:

  • 这些链接不能解决我的问题。我已经见过他们了。我不想给每个文件名。
  • 如果我给出单个文件名,我可以排除。
  • 如果你愿意,你可以称之为“限制”。但无论如何,这就是它的工作原理,听起来你完全理解它。所以没有真正的问题要问。这只是一种抱怨它以其他方式不起作用的方式。在这种情况下,SO 是不合适的。改为向 Apple 提交错误。

标签: swift xcode build-settings


【解决方案1】:

对我来说,如果我像这样定义EXCLUDED_SOURCE_FILE_NAMES 的值:

$(SRCROOT)/../FolderToBeExcluded/*.*

我使用的是 Xcode 9.4.1

【讨论】:

  • 一个简单的星号也可以:$(SRCROOT)/../FolderToBeExcluded/*
【解决方案2】:

如果我给了 FolderToBeExcluded/* 它可以工作,但 FolderToBeExcluded 的子文件夹中的文件不会被排除。

不排除子文件夹的原因是 /*。这告诉它在 FolderToBeExcluded 中查找文件。如果您只给出 FolderToBeExcluded (后面没有斜线),那么它将排除该文件夹和所有子文件夹中的所有文件。至少这是我发现的。

【讨论】:

  • 这对我使用 Xcode 12.2 时不起作用。我必须做FolderToBeExcluded/*FolderToBeExcluded/*/*(因为该文件夹有子文件夹)。
  • 这在 Xcode 12.5 中对我有用——我只是写了文件夹名称 FolderToBeExcluded 没有 /*
【解决方案3】:

我今天遇到的一个重要问题是,您不能排除文件夹引用中的文件,但可以排除整个引用文件夹。

当您向 Xcode 添加文件夹时,它会询问您是要创建组还是创建文件夹引用。如果选择第二个选项,则需要注意不能排除文件夹中的文件,但可以排除整个文件夹。

【讨论】:

    【解决方案4】:

    这似乎是唯一的解决方案:

    1. 为排除目录中的每个子文件夹使用不带文件夹的组
    2. 在 EXCLUDED_SOURCE_FILE_NAMES 设置中排除 ${PROJECT_DIR}/{Path to Excluded Folder}/*

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 2011-11-24
      • 2015-10-12
      • 2015-01-26
      • 1970-01-01
      相关资源
      最近更新 更多