Исключение AdMob из рабочей области с несколькими целями с условиями компиляции - PullRequest
0 голосов
/ 03 ноября 2019

Мне удалось настроить рабочее пространство с несколькими различными целями. Лишь немногие из них запускают рекламу. Используя Google AdMob, я хотел убедиться, что код AdMob присутствует только в тех целях, которые включают рекламу.

В Xcode 11, swift 5 - используя Cocoapods - я правильно настроил файл pod так, чтобы «Google-Mobile-Ads-SDK» включался только в правильные цели.

Моя реализация использовала в Настройках сборки> Пользовательский флаг компилятора Swift определение флага «-DADS_ON», а затем с активными условиями компиляции (#if ADS_ON) для включения кода показа рекламы. Например:

 #if ADS_ON
   @IBOutlet weak var bannerView: GADBannerView!
 #else
   @IBOutlet weak var bannerView: UIView!
 #endif

и

 #if ADS_ON
        bannerView.isHidden = false
        bannerView.adUnitID = AdMobBannerId
        bannerView.rootViewController = self
        bannerView.load(GADRequest())
 #endif

Включая / исключая определенные файлы из разных целей, я смог убедиться, что это работает правильно для целей с или без SDK.

Я создал пустой GADBannerView

@objc(GADBannerView) class GADBannerView : UIView {
// no code here
}

, чтобы у целей без рекламы также могла быть та же раскадровка.

Мой вопрос: это кажется неуклюжим и хрупкимЕсть ли лучшие методы для исключения SDK-зависимого кода из цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...