Этот вопрос развился за последние несколько недель, чтобы охватить более общие проблемы с xcode4 (и модернизация проектов из более старых xcodeс).
Однако многие проблемы можно решить, следуя тем же инструкциям.
Если у вас есть какие-либо из следующих проблем, попробуйте методы, указанные в принятом ответе:
- Xcode 4 не может заархивировать приложение
- Xcode 4 создает непригодный для использования архив
- Xcode 4 не создает .ipa
- Xcode 4 не компилируется из-за ошибок препроцессора
- Xcode 4 не может найти заголовки
- Полный код Xcode 4 не работает
- Зависимости проекта не компилируются
- Добавление зависимости вызывает любую из вышеперечисленных проблем
Исходный вопрос
Заголовок: «Файл проблем лексики или препроцессора не найден» в Xcode 4
У меня есть проект в Xcode 4, который будет нормально строиться и работать на устройстве и симуляторе, но при попытке заархивировать его ошибки при поиске файлов заголовков, связанных со статической библиотекой:
In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
#import "Merchant.h"
^
1 error generated.
Xcode выдает ошибку
lexical or preprocessor issue file not found
Многочисленные поисковые запросы в Google показали, что у многих людей есть эта проблема, но нет решения. У кого-нибудь есть исправление или даже подсказка.
Обновление: На user header
пути поиска устанавливаются ${BUILT_PRODUCTS_DIR}
во всех конфигурациях. Он отлично собирается при любой конфигурации, кроме архивирования.
Обновление 2: Merchant.h
это класс Core Data, который создается автоматически и, следовательно, внутри .xcdatamodeld
пакета, однако все заголовки копируются в каталог общедоступных заголовков при создании библиотеки.
источник
У меня была такая же проблема в XCode 4: «Проблема с лексикой или препроцессором MyFile.h не найдена». Однако MyFile.m не был статической библиотекой, а просто стандартным классом. И MyFile.m и MyFile.h были правильно включены и проиндексированы в проекте.
Итак ... Я вышел из XCode и Simulator, затем перезапустил их, и проблема исчезла.
источник
Я обнаружил, что проблема исчезла, когда я изменил настройку целевой сборки «сканировать все исходные файлы на наличие включений» с нет на да.
источник
Мне удалось решить эту проблему без каких-либо изменений каких-либо настроек сборки, просто скопировав файлы .h в каталог проекта в программе поиска. Я вообще НЕ добавлял их в проект. Просто наличия их в каталоге файловой системы проекта было достаточно, чтобы позволить неявному связыванию Xcode работать должным образом. Подробнее здесь .
источник
У меня была такая странная проблема. Изменение «Проверять все файлы ресурсов ...» на Да не помогло. Я взглянул на пути поиска фреймворка и заметил, что у меня
Это казалось правильным, но все равно не получалось. Затем я попытался изменить порядок 2 и 3, и внезапно все стало нормально. Так что не знаю, почему это был провал, но хотел добавить это в список вещей, которые нужно попробовать, на случай, если это поможет кому-то другому.
источник
Моим решением было изменить мою
к
и все снова заработало. Что было необычно, так это то, что он внезапно прекращал работу после нескольких построек.
источник
Проблема разрешилась сама собой, когда я поставил
Настройки сборки-> Проект-> Пути поиска к Да
источник
У меня было то же самое - 2 цели в моем проекте ( Project и ProjectTest of
GHUnit
). Когда моя схема была настроена в Project , при импорте<GHUnitIOS/GHUnit.h>
возникла проблема «не найден файл лексической проблемы или файл препроцессора» . Но когда я установил в качестве схемы ProjectTest , все было ОК. Итак, я тоже добавилGHUnitIOS.framework
в Project .источник
Похоже, ваши пути поиска заголовка неверны, неправильно настроены в настройках сборки для активной схемы. Проверьте их и обновите свой вопрос с текущими настройками.
источник
У меня похожие проблемы на симуляторе, но не на устройстве, и мои поля пути поиска заголовка пусты (похоже, по умолчанию). Но изменение рабочих пространств, похоже, решило проблему. Возможно, вы могли бы попробовать создать новую рабочую область, добавить в нее свой проект и посмотреть, поможет ли это. Теперь я разбираюсь, почему.
источник
Я получал эту ошибку «файл не найден» для одного конкретного файла .h в моем проекте. Я решил проблему, удалив этот файл .h из проекта (выбрав «Удалить ссылки») и повторно добавив его.
источник
Добавляем еще один вариант: у меня было два экземпляра
foo.m
наCompile Source
этапе сборки, которые каким-то образом вызывали «Заголовок не найден»foo.h
.источник
Еще один шанс:
В проекте рабочей области: смотрите в Target для раздела Build Phases. Как говорится во многих руководствах, для копирования всех ваших заголовков в другое место требуется этап копирования файлов, поскольку iOS Framework не может содержать файлы заголовков для совместного использования (это мой случай).
Для этих копий файлов в качестве места назначения выберите «Каталог продуктов». Или другой подобный каталог, где будут находиться заголовки.
Это сработало для меня. Вероятно, каталог сборки для архива (или выпуска) сильно отличается от ожидаемого в сборке для отладки.
Также проверьте в настройках рабочего пространства каталог сборки.
XD
источник
Для меня эта проблема возникла после того, как я добавил в проект новые файлы; пустые .m и .h, производные от NSObject. Вот как я это решил:
Затем я снова добавил их, и это тоже сработало.
Однозначно ошибка в xCode ...
источник