ошибка сборки при добавлении рекламы 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, помогите мне. Заранее спасибо.


person Arpi    schedule 04.10.2012    source источник


Ответы (8)


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

РЕДАКТИРОВАТЬ: теперь я понимаю, что вы имеете в виду, была проблема со старыми версиями, я добавляю ссылку на отредактированную структуру, чтобы решить эту проблему: Отредактированный Revmob Framework

person XIII    schedule 25.10.2012
comment
Пожалуйста, отметьте ответ как правильный, нажав галочку слева, это единственный способ, которым люди узнают полезный ответ среди других. - person XIII; 02.11.2012

Вы должны ссылаться на StoreKit.framework

person Roman Volkov    schedule 18.10.2012

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

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

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

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

Дважды проверьте установку revmob или попробуйте скомпилировать на свой телефон вместо симулятора.

person felixDkatt    schedule 09.10.2012

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

person Sumanth    schedule 04.10.2012
comment
но у меня нет файла SKStoreProductViewController.m. Эта ошибка возникает, когда я кодирую для RevMob и добавляю упомянутые выше фреймворки. - person Arpi; 04.10.2012
comment
В ресурсах для копирования пакетов вы нашли какие-либо файлы красного цвета, если да, этот файл отсутствует в вашем приложении. Указанная вами ошибка означает, что в вашем приложении отсутствует файл - person Sumanth; 04.10.2012
comment
Нет, в ресурсе комплекта нет файла красного цвета. - person Arpi; 04.10.2012

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

person FractalDoctor    schedule 11.10.2012

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

person Diogo T    schedule 09.10.2012

Это также происходит с 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)

---Чинить---

  1. добавить StoreKit.framework в --> BuildPhases
  2. ---Under-> Связать библиотеки с библиотеками
  3. Если у вас более одной цели, вам может потребоваться добавить StoreKit.framework в обе цели.
person uplearnedu.com    schedule 22.06.2014

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

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

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

person Ahmad.Net    schedule 15.10.2017