Привет!  Я учусь разрабатывать игры на движке Unity. За моей спиной пока что 3 учебных проекта. Я спокойно себе пилю проект, никого не трогаю, собираю очередную сборку iOS, открываю проект в Xcode и.... на меня обваливается шквал ошибок. Я начинаю пытаться разобраться в том, как исправить ошибку внутри проекта Xcode. Не выходит...  Бегу судорожно откатывать последние изменения в проекте Unity.... Тщетно.Переключаюсь с текущей ветки на ветку main, собираю сборку, понимаю что битва только начинается.  Вернусь немного назад. Когда я получил ошибки в Xcode и пытался понять какие изменения в Untiy могли вызвать их, я заметил, что после сборки проекта Xcode, в консоли Untiy появляются предупреждения о том, что не были найдены какие-то скрипты рендеринга. Предполагаю, что раз не были найдены некие скрипты, то это могло повлиять на проект Xcode. Я не знал, существуют они давно или привнесены последними изменениями. Очень много времени трачу на локализацию проблемы (теперь она, как это часто бывает, выглядит пустяком для меня. И так оно и есть). Сокращая детали и подробную историю, постараюсь изложить коротко. Как оказалось, проблема в  том, что изначально я создавал проект URP, чтобы просто посмотреть на него, потыкать, сравнить с неURP. Почему то в этом же проекте я начал делать игру. Позже я удалил часть ассетов URP, но как оказалось не все. И предупреждения, которые появлялись после сборки Unity билда говорили о том, что в проекте нет скриптов, используемые в оставшемся шаблоне URP. Решение простое - удалить шаблоны. Итак, я проверил коммиты из недалекого прошлого, которые успешно билдились и ошибка не пропала. И только в этот момент битва действительно только началась.  Ныряю рыбкой в гугл.  И происходит то, что в будущем сподвигло меня на публичное описание проблемы и ее решения... Я ничего не нахожу. Даже носители родного языка всех этих сред разработки ни разу не упомянули об этой проблеме. Так что новичкам я точно помогу.  Я находил два поста, в которых описывали как отключить предупреждения. Казалось бы, кейс похожий, но у них всего лишь предупреждения, а у меня ошибка.  Не называя имя главного злодея, его существования и его действий не отменишь. Кажется уже все вокруг меня слышат этот крик, но не души, а подгорающего ... вулкана. Сборка не собирается!  Я естественно воспользовался этими советами, но дальше я уже не мог думать конструктивно, осознанно подходить к решению проблемы, я был на автопилоте. Я просто копал. Смотрел хедеры и настройки фреймворка. Миллион раз гуглил и перечитывал одно и тоже. И даже кажется начал что-то понимать.  Я точно понял, что фреймворк, который делает Unity или по крайней мере хедеры фреймворка - это либо чистый C++, либо он там присутствует в том или ином виде. И я полез в настройки  UnityFramework связанные с С++. Исходя из прочитанных статей я понял, что искать надо в Apple Clang - Warnings - C++.  Но я, естественно, не особо хорошо понимал, что на что влияет в Xcode, мог только догадываться.  Конец битвы окажется не таким как я ожидал. На исходе третьего дня я в отчаянии открываю другой свой проект, меняю платформу на iOS, собираю проект Xcode, в этом проекте собираю сборку. Она собирается.... Я сравниваю хедеры фреймворка проекта с ошибками и проекта, который спокойно билдит сборки. Хм, они идентичны по использованию двойных кавычек и угловых скобок. Я расстроен. Но следующая мысль — сравнить настройки фреймворка касаемо С++. Последний день наполнен большим количеством напряженных моментов, от почти каждого действия я жду, что оно окажется решающим. Настройки в двух проектах отличаются. Я меняю два параметра с «Да» на «Нет». Запускаю сборку, готовлюсь смотреть, какие из ошибок пропадут... а может появятся другие?.. прикидываю, что попробовать дальше... и я понимаю, что сижу с лицом выражающим тупое удивление.... я вижу саксесс где сказано что‑то типа: «Невозможно запустить сборку, ваше устройство занято».  Я сижу и не знаю что думать. Уже и забыл что я там последнее разрабатывал в своем проекте. И вроде облегчение, можно дальше пилить свой проект, а не копаться в этом... ИКСкоде. А вроде возмущение, два переключателя с «Да» на «Нет»... три дня. Вместо того чтобы разрабатывать, я бился с ошибками, взявшимися из ниоткуда, а решение — переключить два жалких параметра. Итак, это все лирика, теперь обратим внимание на техническую часть проблемы.  В нескольких места, в хедерах фреймворка появляется ошибка: "double-quoted include [название хедера].h in framework header expected angle-bracketed instead". double-quoted include .h in framework header expected angle-bracketed insteadЕсли пойти на поводу у самонадеянного Xcode, и сменить в указанных им местах двойные кавычки на квадратные(я бы назвал их угловыми) скобки, это вызывает появление противоречивой ошибки, по причине того, что с <> указанные хедеры не находятся. Новая ошибка выглядит так: "'[название хедера].h' file not found with <angled> include; use "quotes" instead". '.h' file not found with <angled> include; use "quotes" instead Решение давольно простое: переходим в настройки сборки фреймворка. UnityFramework > Build Settings. Листаем список до Apple Clang - Warnings - C++. И в этом разделе меняем Yes на No для Suspicious Moves, Range-based For Loops.  Так же можно на всякий случай отключить предупреждения. Для этого никуда не уходим из  Build Settings. Просто листаем до Apple Clang - Warnings - All languages и меняем Yes на No для Quoted Include In Framework Header. Возможно, я неправильно что-то понял и описал неверно. Но самое главное - эти действия помогли мне избавиться от проблемы. Теперь я могу дальше спокойно пилить игру и тестировать ее на устройстве.  Это кайф! Если вдруг кто-то столкнется с этим, не хочу чтобы этот человек потратил 3 дня или вообще не смог решить проблему. Я был бы рад преодолеть ее не за 3 дня, а за 10 минут, загуглив и переключив два - три параметра в настройках.   Ученик Unity