Для меня определили задачу для работы над проектом, который имеет некоторые запутывающие атрибуты.
Проект имеет природу, что это не скомпилирует для iPhone Simulator And iPhone Device с теми же настройками компиляции. Я думаю, что это имеет отношение к необходимости быть конкретно скомпилированным для x86 или arm6/7 в зависимости от целевой платформы.
Так настройки сборки проекта при просмотре в представлении Build Settings XCode не позволяет мне установить определенные флаги компилятора на определенные файлы. Однако предыдущий разработчик, который работал над этим проектом, так или иначе объявил строку:
CE7FEB5710F09234004DE356 /* MyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7FEB5510F09234004DE356 /* MyFile.m */; settings = {COMPILER_FLAGS = "-fasm-blocks -marm -mfpu=neon"; }; };
Там какой-либо путь состоит в том, чтобы сделать это, не редактируя файл проекта вручную? Я знаю, что редактирование файла проекта может привести к повреждению его полностью, таким образом, я не сделал бы этого, поскольку я, очевидно, не знаю столько же сколько предыдущий разработчик.
Таким образом для разъяснения вопрос:
Сборка перестала работать при компиляции для средства моделирования, если я не удаляю -fasm-blocks
флаг. Сборка перестала работать при компиляции для устройства, если я не добавляю -fasm-blocks
флаг. Существует ли способ установить этот флаг на файл, не редактируя файл проекта вручную?
Вы можете определить дополнительные флаги компилятора для отдельных исходных файлов следующим образом:
Однако, похоже, лучшее решение в вашем случае - просто дублировать цель и иметь два мишени - одна для реального устройства и одна для симулятора. Наследуйте общие параметры сборки на уровне проекта и просто настройте параметры сборки для каждой цели, если это необходимо.
Вызовите GetInfo для конкретного файла, там вы можете установить параметры Build для этого файла. Смотрите также руководство по управлению проектами XCode об этом.