Как добавить шейдерные файлы .fsh/.vsh в Xcode, чтобы они были автоматически добавлены в раздел "Копировать ресурсы Bundle"?

Всякий раз, когда я добавляю в свои ресурсы проекта новый файл шейдера OpenGL ESF.fsh или .vsh OpenGL, файл добавляется в фазу сборки источников компиляции, где он не принадлежит. Затем я должен вручную удалить его с этой фазы и вручную добавить его в фазу сборки ресурсов копирования.

Можно ли каким-либо образом указать Xcode для добавления файлов с расширением .fsh и .vsh автоматически в фазу сборки ресурсов копирования Bundle?

Или можно создать правило сборки, которое имеет тот же эффект, что и добавление шейдеров в фазу сборки ресурсов копирования Bundle?

Я бы предпочел решение, которое работает для всех пользователей проекта/рабочего пространства Xcode, вместо того, чтобы изменять настройки или систему, каждый пользователь Xcode должен будет играть индивидуально.

Ответ 1

Мое обходное решение заключается в том, что я перехожу в File > New File > Others > Empty files и назову их как shader.vertsh и shader.fragsh.

Я думаю, что Xcode автоматически добавляет файлы с расширениями dot 3/4 для компиляции фазы.

И если вам не хватает подсветки синтаксиса, измените тип файла на "OpenGL Shading Language Source": Xcode change file type

Ответ 2

Ниже приведено обходное решение. Если у кого-нибудь есть другие решения, я все равно буду признателен за ответ.

Что вы делаете, чтобы получить шейдеры в фазе сборки Скопировать Bundle Resources автоматически, просто поместить все шейдеры в общую папку (или дерево папок). Я назвал папку "Shaders". Затем при добавлении папки Shaders выберите Создать ссылки на папки для любых добавленных папок.

В качестве ссылок на папки файлы автоматически предполагаются Ресурсами Bundle по Xcode. Вам просто нужно быть осторожным, чтобы не помещать какие-либо нежелательные файлы в эту папку, а также очищать папку до создания сборки. Также для загрузки шейдеров требуется использовать путь к шейдерным файлам, то есть "Shaders/Examples/Blur.fsh".