Вопрос по iphone, header, ios – Ошибка файла RestKit / RestKit.h - версия 0.10.0

24

Я теряю волосы в моих попытках заставить RestKit строить и работать. Я получаю страшную & quot; Лексическую проблему или проблему препроцессора: файл RestKit / RestKit.h не найден & quot; сообщение. Я использую Xcode 4.2 & amp; мой проект для iOS.

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

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

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

Сильно смущен и разочарован ..

EDIT1: Через несколько часов я сдался. Обнажил мой проект. Создан свежий проект. Пересоздали файлы (скопируйте и вставьте из предыдущего проекта). Теперь & quot; RestKit не найден & quot; ошибка ушла! Но теперь я получаю эту другую ошибку:

<code>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)
</code>

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

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

Он строит & amp; архивы в режиме отладки. Я еще не пробовал режим распространения.

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

Уже несколько часов пытаюсь построить здание RestKit. Xcode 4.3.2 работает RestKit 0.10 на нескольких новых проектах, следуя визуальному руководству. Нет прогресса .. Так расстраивает. user328146
Прочитав все там, я обнаружил, что начинать все сначала и читать документациюvery тщательно, все решил за меняgithub.com/RestKit/RestKit/wiki/Installing-RestKit-in-Xcode-4.x Marc Cenedella
@ s0mmer Если вы тоже столкнулись с той же проблемой, могу ли я предложить вам проголосовать за вопрос, дающий ему больше шансов привлечь внимание людей, которые его решили. Ravi

Ваш Ответ

14   ответов
1

е, но не будет архивироваться. Здесь я ошибся ...

Я сделал это:

#import "RestKit.h"

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

#import <RestKit/RestKit.h>
1

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

Это не связано с настройками производных данных, они хороши уже в XCode 4.3.2.

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

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

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

Надеюсь, это поможет!

3

Имейте в виду, это полный взлом, но он запустил мой проект.

Assuming that you've already followed the installation steps from the RestKit Github https://github.com/RestKit/RestKit/blob/master/README.md#quick-start-aka-tldr

В цели RestKit, перейдитеBuild Phases, ПодCopy Headers в раскрывающемся списке переместите все файлы заголовков из & quot; Project & quot; на "Публичный".

Очистить, построить, запустить.

0

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

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

  • Select the RestKit run target
  • Build
  • Make sure the header search path was set on all target (apparently on project itself is not enough)
  • Build main project
0

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

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

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

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

Это может вам не помочь, но вполне может. Удачи.

Error: User Rate Limit Exceeded
2

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

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

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

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

Я нашел это руководство полезным (возможно, это то, что вы уже читаете):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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Ravi
Error: User Rate Limit Exceeded Ravi
Error: User Rate Limit Exceeded
0

Мое решение:

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

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

?!!!

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

3

Решение, которое я нашел, состояло в том, чтобы не копировать и не вставлять & quot; $ (BUILT_PRODUCTS_DIR) /../../ Headers & quot; к путям поиска заголовка вашей цели.

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

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

Error: User Rate Limit Exceeded Ravi
10

Я думаю, что могу пролить свет на это.

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

Руководство по установке говорит только сделать это дляproject settings, тем не мениеin many casesвключая мой, вам также необходимо обновить их дляtarget settings также.

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Ravi
Error: User Rate Limit Exceeded
0

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

0

что я случайно добавил настройку сборки в & quot;User Пути поиска в заголовке & quot; а не «Пути поиска по заголовкам».

2

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

  • Delete RestKit from your Project
  • Close your project
  • Move the RestKit folder next to your main xcodeproject
  • Open the RestKit project and build it
  • Close the RestKit project
  • Open your project, and re-import the RestKit project into your xcodeproject
  • Fix the Dependencies and Linkings in the target settings
  • Add the "$(BUILT_PRODUCTS_DIR)/../../Headers" search path to BOTH the project settings and the target settings. (it only worked for me when they were listed in both).

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

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

Error: User Rate Limit Exceeded Ravi
0

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

Да, вы определенно хотите добавить"$(BUILT_PRODUCTS_DIR)/../../Headers" к вашей целиHeader Search Paths, ноdon't forget to include the quotes!

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

Если в вашей конфигурации сборки есть пробел в имени (например, у меня "Ad Hoc"), и вы только что добавили$(BUILT_PRODUCTS_DIR)/../../Headers without в начале и в конце кавычек вы можете получить проблему "Lexical или Preprocessor: файл RestKit / RestKit.h не найден" & quot; проблема.

Error: User Rate Limit Exceeded

Похожие вопросы