Проблема с AdMob в iOS 4.0 v 4.2: попытка запуска на устройствах с перерывами в ADBannerContentSizeIdentifierPortrait - PullRequest
1 голос
/ 07 мая 2011

Я работаю над приложением iOS с Google AdMob SDK 3. AdMob SDK содержит следующий код:

kADBannerContentSizeIdentifierPortrait =
    &ADBannerContentSizeIdentifierPortrait != nil ?
    ADBannerContentSizeIdentifierPortrait :
    ADBannerContentSizeIdentifier320x50;

Я понимаю, что ADBannerContentSizeIdentifier320x50 устарел в iOS 4.2 и более поздних версиях. Мне нужно, чтобы мое приложение было совместимо с iOS 4.0.

Когда я строю этот код на iOS 4.0 SDK на симуляторе, все идет хорошо. Когда я собираюсь использовать iOS 4.0 для устройства, я получаю следующую ошибку:

'ADBannerContentSizeIdentifierPortrait' undeclared

Почему это? Я понимаю, что AdMob реализовал этот код специально, чтобы обойти проблему того, что ADBannerContentSizeIdentifier320x50 не рекомендуется в пользу ADBannerContentSizeIdentifierPortrait .. так почему он не работает? Есть мысли?

Спасибо.

Ответы [ 3 ]

10 голосов
/ 24 сентября 2012

Если вы используете Xcode 4.5. Они переместили объявления, и теперь вам нужно добавить строку:

#import <iAd/iAd.h>
0 голосов
/ 05 июля 2013

Я использую Xcode 4.5 У меня та же проблема, что вы упоминали выше.

после того, как я добавил #import этот заголовочный файл, я столкнулся с другой проблемой ниже

ld: предупреждение: игнорирование файла ломтики) Неопределенные символы для архитектуры i386: "_ADBannerContentSizeIdentifierPortrait", на который ссылаются из: - [P_ExpressViewController addBannerView] в P_ExpressViewController.o "_OBJC_CLASS _ $ _ ADBannerView", на который ссылаются из: objc-class-ref в P_ExpressViewController.o ld: символ (ы) не найден для архитектуры i386 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

0 голосов
/ 07 мая 2011

Вам необходимо собрать с вашим «Базовым SDK», установленным на 4.2 или выше («Последняя iOS» будет работать), а для «Развертывания iOS» установлено значение 4.0, чтобы он работал на вашем телефоне. Установка «Базового SDK» на 4.0 не будет работать, потому что эти символы не определены в SDK 4.0.

...