2014-08-28 2 views
1

Я создаю приложение с использованием Xcode 6 beta 6. Я вручную добавил файл префикса и указал его в настройках сборки: $(SRCROOT)/$(PRODUCT_NAME)/MyApp-Prefix.pch. Файл компилируется, и символы, определенные там, не выделяются как незадекларированные в редакторе. Однако, когда я создаю проект, я получаю ошибки «необъявленного идентификатора» для макросов, определенных в префиксном файле. Что происходит?Ошибка при использовании файла префикса в Xcode 6

Что я пробовал:

  • Набор PreCompile префиксы Заголовки к YES (по умолчанию НЕТ)
  • Очистите папку сборки и удаление производных папок данных

Что интересно это Файл .pch определенно компилируется во время сборки. Если я введу синтаксическую ошибку, она вызывается в результатах сборки. Если файл pch компилируется в порядке, то компилятор начинает действовать так, как будто он не может найти его при создании файлов, которые его используют.

+0

Вы не забыли установить настройку заголовка Precompile Prefix Header? – augustzf

+0

@august Я установил его в YES: никакой разницы. – Macondo2Seattle

+0

Если вы исправили его, ответьте на свой вопрос, если нет, пожалуйста, покажите свой код. – emotality

ответ

0

Как вы думаете, у вас есть предварительно скомпилированный заголовок, который не понимает, что вы изменили .pch, поэтому он все еще использует старую версию предварительно скомпилированного файла.

Очистите проект, затем зайдите в окно> Органайзер> Проекты> $ (PRODUCT_NAME) и удалите полученные данные.

+0

Пробовал это, не повезло. – Macondo2Seattle

2

Вы должны добавить имя файла в раздел «Префикс заголовка» без $ (SRCROOT). Просто установите заголовки Precompile Prefix в YES недостаточно.

  1. Создайте новый файл: ⌘cmd + N
  2. IOS/Mac> Другое> PCH Файл> YourProject-Prefix.pch.
  3. Проект> Настройки сборки> Поиск: «Заголовок префикса».
  4. В разделе «Apple LLVM 6.0» вы получите ключ заголовка префикса.
  5. Тип: «MyApp/MyApp-Prefix.pch». (Без $ (SRCROOT) !!!)
  6. Чистый проект: ⌘cmd + ⇧shift + K
  7. Построить проект: ⌘cmd + B

Более подробно смотрите в https://stackoverflow.com/a/26126065/3628317 ответ.

Работает на XCode 6.1.

0

Иногда вы можете просто удалить схему или цель и воссоздать новую.