Перейти к содержанию
Fire Monkey от А до Я
  • 0

Подключение Admob к iOS


Alex7wrt

Вопрос

Здравствуйте.

Нужен совет по интеграции баннера Admob к iOS приложению. Может быть кто-нибудь уже делал подобное?

Насколько я начитался в инете по похожим запросам, нужно скачать GoogleMobileAds.framework и подключить его в Project-Options-Linking-Options passed to the LD Linker. Кроме этого фреймверка еще нужны такие:

  • EventKit 
  • EventKitUI 
  • AVFoundation 
  • AdSupport 
  • AudioToolbox 
  • AVFoundation 
  • CoreGraphics 
  • CoreTelephony 
  • CoreMedia 
  • MessageUI 
  • StoreKit 
  • SystemConfiguration

Которые подгрузил в SDK Manager. 

Далее в  “Options passed to the LD linker” добавляю:

-ObjC -LC:\Users\<user>\Documents\Embarcadero\Studio\SDKs\iPhoneOS8.3.sdk\usr\lib Frameworks\GoogleMobileAds.framework\GoogleMobileAds Frameworks\AdSupport.framework\AdSupport Frameworks\AudioToolbox.framework\AudioToolbox Frameworks\AVFoundation.framework\AVFoundation Frameworks\CoreGraphics.framework\CoreGraphics Frameworks\CoreMedia.framework\CoreMedia Frameworks\CoreTelephony.framework\CoreTelephony Frameworks\EventKit.framework\EventKit Frameworks\EventKitUI.framework\EventKitUI Frameworks\MessageUI.framework\MessageUI Frameworks\StoreKit.framework\StoreKit Frameworks\SystemConfiguration.framework\SystemConfiguration -lxml2.2

После этого во время компиляции возникает ошибка в фреймворке GoogleMobileAds.framework. 

Все остальные фреймворки ошибок не вызывают.

Текст ошибки: 

[DCC Error] E2597 NYI lto::archName

ld: file was built for unsupported file format ( 0x56 0x65 0x72 0x73 0x69 0x6F 0x6E 0x73 0x2F 0x43 0x75 0x72 0x72 0x65 0x6E 0x74 ) which is not the architecture being linked (arm64):

Это для версии iOS Device 64 bit. Для 32 бит ошибка та же, только в конце вместо arm64 написано armv7.

Символы 0x56 0x65 0x72 0x73 0x69 0x6F 0x6E 0x73 0x2F 0x43 0x75 0x72 0x72 0x65 0x6E 0x74 в переводе на ACSII значат "Versions/Current" - это часть строки в файле GoogleMobileAds.

Вот и не пойму как эту ошибку обойти.

Изменено пользователем Alex7wrt
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • 0
  • 0
В 23.02.2017 в 13:04, Alex7wrt сказал:

Наверно, вряд ли кто-то интегрировал AdMob в iOS, тогда интересует как правильно подключать iOS фреймворки и потом добавлять их в uses.

Получилось у вас запустить AdMob в iOS? Сейчас в Rio пробую, без подключения дополнительных фреймворков, но объявление пустое всегда и ошибка "Не удалось завершить операцию. Запас рекламных объявлений исчерпан". Пробовал и в testmode и без него. В admob приложение и банер добавлены более суток назад.

 

Ссылка на комментарий
  • 0
26 минут назад, Alex7wrt сказал:

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

Спасибо за ответ!

Ads Support only pack for $70.00 ? Жаба конечно душит, но думаю окупится. 

Какие то подводные камни обнаружились в компоненте или все норм? Почитал их инструкцию по установке (https://www.jvesoft.com/wp/configuring-ios/) нифига не понял, но вроде супер-сложного ничего нет.

Ссылка на комментарий
  • 0
44 минуты назад, Alex7wrt сказал:

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

Хотя наверное куплю у них все за $100, там даже Google Analytics есть, Эмбаркадера это сделает наверное никогда.

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

Ссылка на комментарий
  • 0
1 час назад, Alex7wrt сказал:

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

Как и предполагал - я слишком тупой чтоб понять их инструкцию по установке.

  1. Go to Tools -> Options -> SDK Manager à iOS Device, for each iPhoneOS device:
  2. Click on any framework (just a click: there is a bug in IDE).
  3. Click “Add a new path item” image button (top one)
    1. Set “Path on remote machine” to “/System/Library/Frameworks” or “$(SDKROOT)/System/Library/Frameworks” (same as other frameworks).
    2. Set “Framework name” to “SystemConfiguration”.
    3. Click Ok (nothing should be selected in the radio and leave the checkbox unchecked).
  4. Repeat step 3 with Framework name “AdSupport”, “StoreKit”, “Social”, “CoreData”, “CoreTelephony”, “CoreMedia”, “SystemConfiguration”, “Security”, “EventKit”, “EventKitUI”, “AVFoundation”, “iAd”, “AudioToolbox”, “CoreBluetooth”, “SafariServices”, “CoreMotion”, “MediaPlayer”, “MobileCoreServices”, “CoreVideo”, “MessageUI”, “Metal”, “IOSurface”, “ImageIO”, “CoreAudio”, “MediaToolbox”, “CoreMIDI”, “JavaScriptCore”, “ModelIO” (no need to duplicate already existing items: Delphi XE5, for example, already includes StoreKit and iAd).
  5. Click “Update Local File Cache” button.

В эти папки ($(SDKROOT)/System/Library/Frameworks/...) надо что то положить? Где взять все эти фреймворки? Или я туплю?

Ссылка на комментарий
  • 0

При публикации приложения iOS получаю ошибку при использовании JVEsuite :

Цитата

ITMS-90338: Non-public API usage - The app links to non-public libraries in AppName: /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview@apple.com. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Кто нибудь сталкивался с подобным? Как победить?

Ссылка на комментарий
  • 0
В 04.08.2019 в 11:11, Евгений Корепов сказал:

При публикации приложения iOS получаю ошибку при использовании JVEsuite :

Кто нибудь сталкивался с подобным? Как победить?

Ответил мне автор JVEsuite, дай бог ему здоровья!

Цитата

Просто уберите “-weak_framework IOSurface" из Linked Option и попробуйте
загрузить еще раз - должно сработать.


Эпл успешно прожевал приложение и загрузил сборку.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...