Issues implementing AdMob with Firebase iOS

故事扮演 提交于 2019-12-22 12:30:27

问题


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!


回答1:


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.




回答2:


import Firebase

in ViewController




回答3:


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

import Firebase
import GoogleMobileAds



回答4:


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.




回答5:


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




回答6:


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.




回答7:


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.




回答8:


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.



来源:https://stackoverflow.com/questions/37834509/issues-implementing-admob-with-firebase-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!