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!
The solution is very simple, just import both Firebase & GoogleMobileAds :
I may be late to the Party but along side GoogleMobileAds. We have to import Firebase. Dont know the reason but that solve my problem. I have ran into same kind of problem on different occasions.
When you use Pod to install, Don't forget to unmark 'use_framework!'
I reinstall pods again with 'use_framework' , it's work! And you don't need to import Firebase when you try to use GADBannerview.
You do not need to import
Firebase
.I solved all problems as unpredictable error, compile error and import error using this way. I am using Xcode8.x with Swift3.
Uninstall cocoapod if you installed in your iOS project. (Delete all pod folders, pod frameworks and workspace made by pod). Does not matter
Podfile
.Edit
Podfile
as belowIn terminal, type
pod update
pod install
Open project through
yourproject.workspace
made bycocoapod
import
GoogleMobileAds
and do anything you want.Booooooom!
I hope it help you guys. And you can download examples by google here.
Is you cocoapods the newest version?
I had a similar issue with old version of cocoapods after adding firebase to my project which has GoogleMobileAds implemented already.
I got 3 build errors after I import Firebase:
"Use of unresolved identifier GADRequest"
"Use of unresolved identifier GADBannerViewDelegate"
"Use of unresolved identifier GADBannerView"
I commented
import Firebase
and those errors gone.I decided to update my cocoapods and delete my old podfile.
Then use
pod init
to create a new podfile and add dependencies. Of course install pods again.This works for me.
Not sure it works in your case or not, but I hope it helps.
in ViewController