Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Updating Google AdMob SDK from 7.7.0 to 7.8.0 Undefined Symbols Error

Tags:

ios

swift

admob

I have updated my Google AdMob SDK from 7.7.0 to 7.8.0. After that I am getting this error:

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_SFSafariViewController", referenced from: objc-class-ref in GoogleMobileAds(flat-x86_64)

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

I have added all these frameworks:

AdSupport,
AudioToolbox,
AVFoundation,
CoreGraphics,
CoreMedia,
CoreTelephony,
EventKit,
EventKitUI,
MediaPlayer,
MessageUI,
StoreKit,
SystemConfiguration

Before I updated this SDK it was working fine. This is in my Framework Search Path in Build Phases

$(inherited)

$(PROJECT_DIR)/SDKs

$(PROJECT_DIR)

$(PROJECT_DIR)/SDKs/GoogleMobileAdsSdkiOS-7.8.0

linked framework

like image 571
Riddhi Shah Avatar asked May 02 '16 06:05

Riddhi Shah


2 Answers

I have added:
SafariServices.framework
CoreBluetooth.framework
It is working

like image 117
Quan Doan Avatar answered Nov 06 '22 14:11

Quan Doan


In version 7.8.0 new dependencies to the frameworks CoreBluetooth and SafariServices were added, so adding these solved the issue this time.

The GoogleMobileAds SDK (aka AdMob SDK) has many dependencies and they are being added (and sometimes removed) in successive releases. For instance, JavaScriptCore framework is a new dependency starting with version 7.13.0 released on 2016-10-17. If you run into this issue again check for updates to the framework dependencies in the release notes log:

https://firebase.google.com/docs/admob/release-notes

like image 1
Arlo Randall Avatar answered Nov 06 '22 14:11

Arlo Randall