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:31

The solution is very simple, just import both Firebase & GoogleMobileAds :

import Firebase
import GoogleMobileAds
查看更多
Evening l夕情丶
3楼-- · 2019-06-05 15:34

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.

查看更多
疯言疯语
4楼-- · 2019-06-05 15:35

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.

查看更多
手持菜刀,她持情操
5楼-- · 2019-06-05 15:40

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.

  1. Uninstall cocoapod if you installed in your iOS project. (Delete all pod folders, pod frameworks and workspace made by pod). Does not matter Podfile.

  2. Edit Podfile as below

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'

target 'YourTargetName' do
    use_frameworks!
    pod 'Firebase/Core'
    pod 'Firebase/AdMob'
end
  1. In terminal, type pod update

  2. pod install

  3. Open project through yourproject.workspace made by cocoapod

import GoogleMobileAds and do anything you want.

Booooooom!

I hope it help you guys. And you can download examples by google here.

查看更多
我欲成王,谁敢阻挡
6楼-- · 2019-06-05 15:50

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.

查看更多
干净又极端
7楼-- · 2019-06-05 15:50
import Firebase

in ViewController

查看更多
登录 后发表回答