Xcode4 如何将.fsh/.vsh着色器文件添加到Xcode,以便自动将它们添加到复制包资源阶段?

Xcode4 如何将.fsh/.vsh着色器文件添加到Xcode,以便自动将它们添加到复制包资源阶段?,xcode4,resources,bundle,shader,Xcode4,Resources,Bundle,Shader,每当我将一个新的.fsh或.vsh OpenGL ES 2.0着色器文件添加到项目的资源中时,该文件都会添加到编译源代码构建阶段,该阶段不属于该文件。然后,我必须手动将其从该阶段删除,并手动将其添加到复制包资源构建阶段 有没有办法让Xcode自动将扩展名为.fsh和.vsh的文件添加到复制包资源构建阶段 或者,是否可以创建一个生成规则,其效果与将着色器添加到复制包资源生成阶段相同 我更喜欢适用于所有Xcode项目/工作区用户的解决方案,而不是每个Xcode用户都必须单独玩的设置或系统更改。以下是

每当我将一个新的.fsh或.vsh OpenGL ES 2.0着色器文件添加到项目的资源中时,该文件都会添加到编译源代码构建阶段,该阶段不属于该文件。然后,我必须手动将其从该阶段删除,并手动将其添加到复制包资源构建阶段

有没有办法让Xcode自动将扩展名为.fsh和.vsh的文件添加到复制包资源构建阶段

或者,是否可以创建一个生成规则,其效果与将着色器添加到复制包资源生成阶段相同


我更喜欢适用于所有Xcode项目/工作区用户的解决方案,而不是每个Xcode用户都必须单独玩的设置或系统更改。

以下是我找到的解决方法。如果有人有其他的解决办法,我还是会很感激你的回答

要使着色器自动进入复制捆绑资源构建阶段,只需将所有着色器放在公共文件夹(或文件夹树)中即可。我将文件夹命名为“着色器”。然后,在添加着色器文件夹时,选择为任何添加的文件夹创建文件夹引用


作为文件夹引用,Xcode会自动假定这些文件是捆绑资源。您只需要小心,不要将任何不需要的文件放入该文件夹中。在进行发布构建之前,请清理该文件夹。加载着色器还需要使用着色器文件的路径,即“shaders/Examples/Blur.fsh”。

我的解决方法是转到文件>新建文件>其他>空文件,并将它们命名为shader.vertshshader.fragsh

我猜Xcode会自动将扩展名为dot 3/4的文件添加到编译阶段

如果缺少语法突出显示,请将文件类型更改为“OpenGL着色语言源”:

我一时想不出答案,但我的蜘蛛感觉告诉我答案可能就在你项目的“构建规则”部分。我也这么认为,但没有运气。我会收到“多个构建命令”或“没有处理文件的规则”警告。即使我将fsh/vsh文件的文件类型设置为OpenGL着色语言源,使用规则“GLSL源文件使用PBXCp”的最合乎逻辑的解决方案也不起作用。我有一个自制的图形库,可以在项目之间共享。我希望将代码和着色器放在一个文件夹中,并让Xcode在每次将库导入到新项目时确定哪些是源文件,哪些是资源。这对我不起作用,我不想仅为这种情况重命名现有源文件。我使用了将它们放在文件夹中并通过文件夹引用添加到项目中的方法,LearnCos2D提到了这种方法。@jd。是的,我也不想重命名所有现有的代码,这种变通方法只有在你开始一个新项目时才有效,我也希望苹果能像在他们的示例代码中一样解决这个问题,他们使用了.vsh和.fsh扩展,包括我在内的所有人都愿意这样做:)不要认为这个解决方案是必要的,在XCode 5.1.1
.vsh
.fsh
上,文件会自动添加到
复制包资源中
@aledalgrande,你说得对。我很惊讶苹果还没有为着色器提供模板文件。