Ошибка сборки при добавлении объявления revmob в приложении iOS

Я хочу добавить RevMob добавить в мое приложение, но есть некоторые ошибки

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SKStoreProductViewController", referenced from:
  objc-class-ref in RevMobAds(RevMobStoreController.o)
"_SKStoreProductParameterITunesItemIdentifier", referenced from:
  -[RevMobStoreController openStoreWithITunesItemId:] in RevMobAds(RevMobStoreController.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я уже добавил StoreKit, SystemConfiguration и RevMob Frameworks. Я использую Xcode4.3 и ios4.2 Плз помоги мне.                                                 Спасибо заранее.

Ответы

Ответ 1

Вам нужно добавить инфраструктуру StoreKit

EDIT: теперь я вижу, что вы имеете в виду, возникла проблема с более старыми версиями, я добавляю ссылку на отредактированную структуру для решения этой проблемы: Edited Revmob Framework

Ответ 2

Вы должны установить ссылку на StoreKit.framework

Ответ 3

Похоже, что у вашего объявления sdk теперь нет поддержки для использования с симулятором.

- [RevMobStoreController openStoreWithITunesItemId:] в RevMobAds (RevMobStoreController.o) ld: символ (ы), не найденный для архитектуры i386

если вы получаете что-либо, что упоминает "не найденное для архитектуры", означает, что revmob не включает классы для работы на симуляторе. У вас есть 2 варианта. найдите отсутствующую библиотеку ".a файл" или только скомпилируйте для тестирования на устройстве.

Я столкнулся с проблемой с новым ios6, где revmob не поддерживал новую архитектуру armv7s iphone 5.

Двойная проверка установки revmob или попытка компиляции на свой телефон вместо симулятора

Ответ 4

Когда вы удаляете файлы вручную в xcode, файлы не копируются в Bundle. Таким образом, "SKStoreProductViewController.m" был файлом, не скопированным в комплекте, поэтому произошла ошибка. Чтобы устранить ошибку. Перетащите файлы только .m файлов в Copy Bundle Resource, как показано на рисунке enter image description here

Ответ 5

Они выпускают новую версию SDK (4.6.0), которая отлично работает на старых версиях Xcode!

Ответ 6

Эта ошибка также может произойти, если вы удалили файл из своего проекта и впоследствии его повторно создали. Иногда Xcode автоматически не включает его в поле "Скомпилировать источники" (когда вы нажимаете на цель). Установите флажок и посмотрите, включены ли все исходные файлы, а затем перетащите их и перестройте.

Ответ 7

Это также происходит с Appirater. Я получил это сообщение:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: objc-class-ref in Appirater.o "_SKStoreProductParameterITunesItemIdentifier", referenced from: +[Appirater rateApp] in Appirater.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

--- Чтобы исправить ---

  • добавить StoreKit.framwork в → BuildPhases
  • --- Under- > Link Libraries с библиотеками
  • Если у вас более одной цели, вам может потребоваться добавить StoreKit.framwork для обоих целей.

Ответ 8

Я столкнулся с подобной проблемой, и после длительного поиска и проверки образца кода RevMob я нашел это решение, возможно, помог другим:

В разделе "Цель проекта" выберите Параметры сборки, в разделе Развертывание, проверьте Цель развертывания iOS, измените значение на iOS 9.0 или выше.

Я надеюсь, что эта помощь.