Issues implementing AdMob with Firebase iOS

2019-06-05 15:11发布

So ever since the announcement came that iAD would be shutting down I started searching for an alternative way to monetize my app using advertisements. And with Google's May 18th updates to Firebase (integrating AdMob with it was very appealing), I decided to add a simple banner ad to my app. I followed all the instructions in the documentation (https://firebase.google.com/docs/admob/ios/quick-start#load_an_ad_into_gadbannerview) however I am unfortunately getting some critical errors.

Here is the code from the documentation, it nearly identical to my application code:

import UIKit
import GoogleMobileAds

class ViewController: UIViewController {

  @IBOutlet weak var bannerView: GADBannerView!

override func viewDidLoad() {
  super.viewDidLoad()

  bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
  bannerView.rootViewController = self
  bannerView.loadRequest(GADRequest())
}

} 

At @IBOutlet weak var bannerView: GADBannerView! I am getting the error: weak may only be applied to class and class-bound protocol types, not '<<error type>> Which is an error that I have never seen in my life!

I am also getting Use of unresolved identifier 'GADRequest, which I do not understand because that is a built in method from GADBannerView...?

I installed all the necessary libraries using cocoapods so that shouldn't be a problem. Any help would be appreciated. Thank you!

8条回答
我命由我不由天
2楼-- · 2019-06-05 15:54

I solved it updating cocoapods to the latest version, installing all pods again and clean the project

查看更多
小情绪 Triste *
3楼-- · 2019-06-05 15:57

Firebase/Google Ads, Swift, Xcode, and Cocoapods are constantly updating. I have been changing how to declare the pods and importing them over the years.

Now (year 2018), your Podfile should be written like this:

pod 'Firebase/AdMob'

That's all. It's consolidated under the subspec "AdMob", under the one big family of Firebase. You run a pod install and you will realize there is a dependency to the pod "Google-Mobile-Ads-SDK" (but you should not add the pod to the Podfile).

You need to import Firebase, and the project should resolve GADRequest etc.

It will work, until one of them change the way to integrate, again.

查看更多
登录 后发表回答