Подтвердить что ты не робот

Файл RestKit/RestKit.h не найден - версия 0.10.0

Я теряю свои волосы в своих попытках заставить RestKit строить и работать. Я получаю сообщение ужасного "Лексика или препроцессора: сообщение RestKit/RestKit.h не найден". Я использую Xcode 4.2, и мой проект предназначен для iOS.

Раньше у меня был режим отладки, отлично работающий с RestKit 0.9.0. Затем я столкнулся с проблемами при попытке архивирования. После прочтения этого форума и попыток некоторых решений я решил обновиться до 0.10.0 с надеждой, что он решит проблему.

Теперь мой проект даже не работает в режиме отладки, и я получаю тот же файл RestKit/RestKit.h, который не найден.

У меня есть это по пути поиска заголовка: "$ (BUILT_PRODUCTS_DIR)/../../Заголовки". Можете ли вы предложить (для версии 0.10.0): 1) Где должно находиться физическое местоположение RestKit? (Это может быть неважно, но какой из них работал на вас - с надеждой, что я смогу отразить ваши настройки) 2) Я попытался указать путь поиска заголовка на "/Developer/Library/RestKit-RestKit-69adee9/", а затем на "/Developer/Library/RestKit-RestKit-69adee9/Build"

Смутно и расстроено.

EDIT1: Через несколько часов я сдался. Я уволил свой проект. Создал новый проект. Восстановлены файлы (скопировать пасту из предыдущего проекта). Теперь ошибка "RestKit not found" исчезла! Но теперь я получаю эту другую ошибку:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RKObjectMapping", referenced from:
objc-class-ref in myclassname1.o
"_OBJC_CLASS_$_RKObjectManager", referenced from:
objc-class-ref in myclassname2.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я проверил и убедился, что я НЕ добавил RestKit.framework... Я понятия не имею, почему сейчас происходит ошибка clang.

EDIT2: libRestKit.a был красным. Это нормально в соответствии с https://github.com/RestKit/RestKit/wiki/Installation-Troubleshooting Просто для этого я удалил все связанные зависимости. Удалено "Другие флаги компоновщика". Закрыт и вновь открыт Xcode. Положите их обратно. Эта ошибка исчезла. Возможно, я пропустил рамки, которые привели к ошибке clang. Но очень маловероятно, что я проверил и дважды проверил. Теперь он работает.

Он создает и архивирует в режиме отладки. Я еще не пробовал режим распространения.

EDIT3: Apple одобрила мое приложение в первый раз, и оно в прямом эфире! Я все еще не знаю, что вызвало эту проблему. Нукирование существующего проекта и создание нового и копирование по старым файлам (периодическая проверка сборки) не может быть решением. Поэтому я оставляю этот вопрос открытым.

4b9b3361

Ответ 1

Думаю, я могу пролить свет на это.

Когда вы обновляетесь до 0.10.0, вы меняете пути поиска заголовков на "$(BUILT_PRODUCTS_DIR)/../../Headers", правильно?

В руководстве по установке указано, что это нужно для настроек проекта. Однако во многих случаях, включая мои, вам также необходимо обновить их для целевых настроек.

У целевых настроек по-прежнему будут старые пути поиска заголовков, и по какой-либо причине они решили не наследовать от параметров проекта.

Ответ 2

Имейте в виду - его общий взлом - но он запустил мой проект.

Предполагая, что вы уже выполнили шаги установки из RestKit Github  https://github.com/RestKit/RestKit/blob/master/README.md#quick-start-aka-tldr

В целевой точке RestKit перейти Фазы сборки. В раскрывающемся списке Копировать заголовки переместите все файлы заголовков из "Project" в "Public".

Очистить, выполнить, запустить.

Ответ 3

Решение, которое я нашел, заключается не в том, чтобы скопировать и пропустить "$ (BUILT_PRODUCTS_DIR)/../../Заголовки" в целевые маршруты поиска заголовков.

Через пять часов я удалил копию и вставил ее "и вручную набрал их, и он сработал.

Ответ 4

Недавно я играл с обновлением с RestKit 0.9.3 до 0.10.0 и имел то же самое. Вы удалили каталог RestKit/build? Он содержит копию файлов .h и создается как часть процесса сборки при построении 0.9.x. Doing Product → Clean, похоже, не удаляет эти файлы. 0.10.0, похоже, не создает этот каталог сборки. Я подозреваю, что ваши ошибки сборки связаны с тем, что файлы все еще собраны.

Кроме того, чтобы полностью ответить на ваш вопрос, я сохраняю файлы RestKit в:
(проект dir)/Frameworks/RestKit
Это подмодуль git, поэтому он содержит клон ретрансляции RestKit git при конкретной ревизии.

И путь поиска заголовка:
$(BUILT_PRODUCTS_DIR)/../../заголовков

Путь поиска заголовка для 0.9.3 был:
$(SOURCE_ROOT)/RestKit/Строительные

Я нашел это руководство полезным (возможно, это то, что вы уже видите): https://github.com/RestKit/RestKit/wiki/Installing-RestKit-in-Xcode-4.x и обратите внимание на раздел о наличии libRestKit.a в проекте для последних версий RestKit, в которых более ранние версии имели все:

  • libRestKitNetwork.a
  • libRestKitObjectMapping.a
  • libRestKitSupport.a
  • libRestKitJSONParserJSONKit.a
  • libRestKitXMLParserLibxml.a
  • libRestKitCoreData.a

Если у вас есть все это, удалите их из своего проекта.

Ответ 5

Борьба с той же проблемой в течение последних нескольких часов. Что, наконец, сработало для меня (и я не говорю, что это определенное исправление, но, по крайней мере, это что-то попробовать).

  • Удалить RestKit из вашего проекта
  • Закрыть проект
  • Переместите папку RestKit рядом с основным xcodeproject
  • Откройте проект RestKit и создайте его
  • Закройте проект RestKit
  • Откройте проект и повторно импортируйте проект RestKit в свой файл xcodeproject
  • Исправьте зависимости и привязки в целевых настройках
  • Добавьте путь поиска "$ (BUILT_PRODUCTS_DIR)/../../" заголовков "к BOTH настройкам проекта и целевым настройкам. (он работал только для меня, когда они были указаны в обоих).

Этот последний шаг может быть все, что необходимо для его исправления, но поскольку я тоже вытягивал свои волосы из-за этого, я пробовал много разных решений и не хотел предполагать, что этот последний шаг был единственной причиной его исправлено.

(и моя настройка - XCode 4.3.2 и OS X 10.7.3)

Ответ 6

Проведя 2 дня на этой же ошибке и перейдя к каждому возможному результату Google, я, наконец, получил его!

Это не из-за настроек Derived Data, это хорошо уже в XCode 4.3.2.

Проблема в том, что вы используете #import "RKObjectMapping.h" или некоторые другие.

Вместо этого используйте @class RKObjectMapping, или если вы действительно используете .h use <RestKit/RKObjectMapping.h>

Я пошел с @class, так как мне просто нужно скомпилировать...

Надеюсь на эту помощь!

Ответ 7

У этой проблемы тоже. Он будет создавать и запускать отлично на симуляторе, но не будет архивироваться. Здесь, где я ошибся...

Я сделал это:

#import "RestKit.h"

Вместо правильного пути:

#import <RestKit/RestKit.h>

Ответ 8

Сегодня у меня была такая же ошибка. Весь наш код находится в реестре github, а папка restkit игнорируется, поэтому ни один из файлов restkit не был там. Теперь, когда xcode открывает проект и обнаруживает, что материал отсутствует, он предполагает, что все ад сломался. Итак, удалил папку, повторно клонировал ее, а затем схватил новую копию restkit и бросил туда и вуаля, все сработало.

Ответ 9

Я обнаружил, что мне нужно вручную создать цель RestKit для файлов заголовков, которые будут скопированы в каталог сборки. По-видимому, сборка основного проекта не обеспечивает надежного запуска сборки подпроекта?

Итак, мои шаги для устранения этой проблемы:

  • Выберите цель запуска RestKit
  • Построить
  • Убедитесь, что путь поиска заголовка задан для всех целей (видимо, для самого проекта недостаточно)
  • Создание основного проекта

Ответ 10

Была очень похожая проблема. Оказалось, что я случайно добавил настройку сборки в " Пользовательские маршруты поиска заголовков", а не "Пути поиска заголовков".

Ответ 11

Мое решение:

При добавлении "$(BUILT_PRODUCTS_DIR)/../../Headers" в Цели → Настройки сборки → Пути поиска → Пути поиска заголовков, значение не было установлено.

Вместо этого значение было настроено на пути поиска пользовательских заголовков. Таким образом, вы дважды нажимаете на пути поиска заголовков, появляется панель с линиями, вы нажимаете + вниз влево, вставляете эту строку туда, щелкаете в другом месте, чтобы закрыть окно и... ничего. Пути поиска заголовков не обновились, но путь поиска заголовка пользователя сделал.

?!!!

Итак, вы нажимаете кнопку раскрытия информации на путях поиска заголовков. Нажмите + знак справа от атрибута и добавьте значение...

Ответ 12

Здесь распространенная ошибка, которая заставит вас похлопать себя после исправления.

Да, вы определенно хотите добавить "$(BUILT_PRODUCTS_DIR)/../../Headers" в свою цель Header Search Paths, но не забудьте включить кавычки!

Я говорю о котировках до $(BUILT и после _DIR)/../../Headers

Если ваша конфигурация сборки имеет пробел в имени (например, мой - "Ad Hoc" ), и вы только что добавили $(BUILT_PRODUCTS_DIR)/../../Headers без ведущих и завершающих кавычек, вы можете в конечном итоге получить проблема "Лексическая или препроцессорная проблема: проблема RestKit/RestKit.h не найдена".

Ответ 13

Это проблема, о которой я не думаю, достаточно ответов на эту проблему, потому что, если у вас есть эта проблема, похоже, что ничего не поделаешь! Попробовав все предлагаемые решения (ни один из них не работал). Я, наконец, нашел проблему

Проблема заключалась в том, что в одной из моих папок было место. Не используйте пробелы в именах исходных папок!

Used to be : (/Xcode projects/basicRestkit etc...)  -- lots of pain and suffering  
changed to : (/projects/basicRestkit) -- lots of rejoicing

Это привело к тому, что пути поиска заголовков не работали и, следовательно, не находили файлы. Вполне возможно, что можно использовать альтернативные пути поиска заголовков, чтобы найти ваши файлы даже с пробелами.

Это может вам не помочь, но это очень хорошо. Удачи.

Ответ 14

Для меня работают только эти шаги. Проверьте здесь Надеюсь, это поможет.