Компиляция, сборка или архивирование проблем с Xcode 4 (и зависимостями)
этот вопрос развивался в течение последних нескольких недель, чтобы охватить более общие вопросы с xcode4 (и обновление проектов формы старше в Xcodes).
однако многие из проблем могут быть решены, следуя тому же набору инструкций.
если у вас есть какие-либо из следующих вопросов, попробуйте методы в принятом ответе:
- Xcode 4 не удается архивировать приложение
- в Xcode 4 создает в негодность архив
- Xcode 4 не создает.ИПА
- 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
много Googling показывает, что у многих людей есть эта проблема, но нет решения. Кто-то получил исправление или даже подсказку.
обновление: на user header
пути поиска набор к ${BUILT_PRODUCTS_DIR}
во всех конфигурациях. Он отлично строится с использованием любой конфигурации, кроме архивирования.
обновление 2: Merchant.h
является основным классом данных, который генерируется автоматически и, следовательно, внутри .xcdatamodeld
package, однако все заголовки копируются в каталог public headers при построении библиотеки.
14 ответов
NB: шаги ниже решат 90% ваших проблем с архивом Xcode однако из комментариев предлагается попробовать выход из Xcode первый. Это может сэкономить вам часы Настройки Настройки.
- проверьте правильность" пути заголовка пользователя "(добавьте "" в пути для пробелов, как в вашем проекте, так и в зависимостях)
- установите" всегда искать пути пользователя " в YES
- создать групповой вызов " индексирование заголовков" в вашем проекте и перетащите заголовки в эту группу,НЕ добавить к любым целям при появлении запроса. Это включает в себя любые заголовки внутри вашего .xcdatamodeld, вам нужно щелкнуть правой кнопкой мыши и просмотреть содержимое пакета, чтобы найти их.
- для всех зависимостей set "Пропустить Установку" создать параметр "да"
- перемещение любых" общедоступных "заголовков на этапах сборки в"проект"
- настройки сборки "Каталог Установки" на стадионе
$(LOCAL_APPS_DIR)
- измените целевой параметр сборки "сканировать все исходные файлы для includes" на "да". (ссылке)
- С более новыми версиями Xcode (>4.2) вы можете захотеть читать здесь связанные с рабочими областями.
- вручную удалить проект.файлы xcworkspace форма всех упомянутых проектов
У меня была та же проблема в XCode 4: "лексический или препроцессорный выпуск MyFile.ч не нашли". Однако, MyFile.m не была статической библиотекой, просто стандартным классом. И MyFile.m и MyFile.h были включены надлежащим образом и проиндексированы в проект.
Так ... Я вышел из XCode и симулятора, затем перезапустил их, и проблема исчезла.
Я обнаружил, что проблема исчезла, когда я изменил целевую настройку сборки "сканировать все исходные файлы для includes" с " НЕТ " На "да".
Я смог решить эту проблему без каких-либо изменений в каких-либо настройках сборки, просто скопировав .H файлы в каталог проекта в finder. Я вообще не добавлял их в проект. Просто наличие их в каталоге файловой системы проекта, казалось, было достаточно, чтобы неявная ссылка Xcode работала правильно. Подробнее здесь.
У меня была такая странная проблема. Изменение "сканировать все файлы ресурсов..."Да, не помогло. Я взглянул на пути поиска фреймворка и заметил, что у меня
- $(по наследству)
- "$(SRCROOT)"
- "$(SRCROOT)/my/correct / path"
Это казалось правильным, но до сих пор не. Затем я попытался изменить порядок 2 & 3, и внезапно он стал прекрасным. Так что не уверен, почему это был hickup, но хотел добавить его в список вещи, которые нужно попробовать, если это поможет кому-то еще.
моим решением было изменить мой
#import "HeaderFile.h"
to
#import <FrameworkName/HeaderFile.h>
и все снова начало работать. Что было необычно, так это то, что он внезапно перестал работать после строительства несколько раз.
у меня было то же самое-2 цели в моем проекте (проект и ProjectTest of GHUnit
). Когда моя схема была настроена на проект импорт <GHUnitIOS/GHUnit.h>
была проблема "лексические или препроцессора вопрос не найден файл". Но когда я задаю как схему ProjectTest, все было в порядке. Итак, я добавил GHUnitIOS.framework
на проект тоже.
похоже, что ваши пути поиска заголовка неверны, не настроены должным образом в настройках сборки для активной схемы. Проверьте их и обновите свой вопрос с помощью текущей настройки.
У меня аналогичные проблемы на симуляторе, но не на устройстве, и мои поля пути поиска заголовка пусты (кажется, по умолчанию). Но изменение рабочих пространств, похоже, решило проблему. Возможно, вы можете попробовать создать новое рабочее пространство, добавить в него свой проект и посмотреть, поможет ли это. Теперь я выясняю почему.
Я получал эту ошибку "файл не найден" для одного конкретного .H-файл в моем проекте. Я решил проблему, удалив это .H-файл из проекта (выбрав "удалить ссылки") и повторно добавить его.
добавить еще вариант: у меня было два экземпляра foo.m
на Compile Source
фаза сборки, которая некоторым образом вызвала "заголовок не найден" для foo.h
.
еще один шанс:
в проекте рабочей области: смотрите в целевом для этапов сборки раздела. Поскольку во многих руководствах говорится, что вам нужно иметь этап сборки файлов копирования, чтобы скопировать все ваши заголовки в другое место, поскольку iOS Framework не может содержать файлы заголовков для совместного использования (это мой случай).
выберите для этих файлов копирования в качестве опции назначения "каталог продуктов". Или другой каталог вашего like, где будут находиться заголовки.
Это сработало для меня. Наверное каталог build for Archive (или Release) сильно отличается от ожидаемого в build for Debug .
также проверьте настройки рабочей области в каталоге сборки.
XD
для меня эта проблема возникла после добавления новых файлов в проект; пустой .м и. ч производным от NSObject. Вот как я решил это:
- закрыт и перезапущен xCode
- удалены два новых файла через XCode
- успешной перекомпиляции
затем я снова добавил их позже, и это также сработало.
определенно ошибка в xCode...