Xcode -构建设置“EXCLUDED_SOURCE_FILE_NAMES”不起作用

cnjp1d6j  于 2023-05-19  发布在  其他
关注(0)|答案(5)|浏览(285)

我试图从我的项目(Xcode 9)中排除一些.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的限制吗?

xfb7svmp

xfb7svmp1#

如果我给FolderToBeExcluded/它是工作的,但文件FolderToBeExcluded的子文件夹不被排除。
不排除子文件夹的原因是
/
。这告诉它在FolderToBeExcluded中查找文件。如果您只给予FolderToBeExcluded(后面没有斜杠),则会排除该文件夹中的所有文件以及所有子文件夹。至少这是我发现的。

bakd9h0s

bakd9h0s2#

我今天遇到的一个重要问题是,不能排除文件夹引用中的文件,但可以排除整个引用的文件夹。
当你在Xcode中添加一个文件夹时,它会询问你是要创建一个组还是创建一个文件夹引用。如果选择第二个选项,则需要注意不能排除文件夹中的文件,但可以排除整个文件夹。

m1m5dgzv

m1m5dgzv3#

对我来说,如果我像这样定义EXCLUDED_SOURCE_FILE_NAMES的值,它就可以工作:

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

使用Xcode 9.4.1

myss37ts

myss37ts4#

这似乎是唯一的解决办法:
1.对排除目录中的每个子文件夹使用不带文件夹的组
1.在EXCLUDED_SOURCE_FILE_NAMES设置中排除${PROJECT_DIR}/{Path to Excluded Folder}/*

pwuypxnk

pwuypxnk5#

我的发现

这么说吧

Project
|_ Foo
   |_ Bar
      |_ ToBeExcluded
         |  file.json
         |_ Sub
            |_ subfile.json

我尝试了ToBeExcluded/*,它可以排除file.json,但不能排除subfile.json
当尝试ToBeExcluded/ToBeExcluded时,排除项似乎被忽略,因为这两个文件仍然包含在内
ToBeExcluded/**排除了file.json,但包含了subfile.json(这应该是递归的,但嘿)
ToBeExcluded/*/*不包括subfile.json,但包括file.json(我猜有道理)
Kamen建议使用$(SRCROOT),所以我尝试了$(SRCROOT)/Foo/Bar/ToBeExcluded/*.*(与$(SRCROOT)/Foo/Bar/ToBeExcluded/*相同),它与ToBeExcluded/*相同,所有其他变体都是如此,并且在使用完整路径时与没有完整路径时的行为相同
${PROJECT_DIR}(在我的例子中)翻译成和$(SRCROOT)一样的东西,所以很遗憾地做了同样的事情

我的结论(暂时)

可悲的是,现在我想我要做的只是排除ToBeExcluded/*,也许ToBeExcluded/*/*(会考虑这个),然后只要确保每当添加新文件到它,最好是在根文件夹,如果需要在xcode中分组,而不创建一个文件夹。最坏的情况下,可以添加一级子文件夹

相关问题