Undefined Symbols for Architecture Arm64 "_Objc_Class_$_Sfsafariviewcontroller"

Undefined symbols for architecture arm64 _OBJC_CLASS_$_SFSafariViewController

I had the same issue. But my problem was i haven't included the SafariServices framework.

I added it as required and it worked fine.

Make sure you have the next configuration:

  • Disabled BITE_CODE
  • Added all needed frameworks
  • The linker flag -ObjC (not -Objc)
  • Added the needed url types
  • Imported GoogleSignIn.h
  • GoogleServices-Info.plist imported in your target

In my configuration i'm using 7.0 as deployment target

Hope it helps.
Regards

Undefined symbols for architecture arm64: _OBJC_CLASS_$_GADMediatedNativeAdNotificationSource

I manage to solve it by using

pod 'InMobiSDK'

instead of

pod 'GoogleMobileAdsMediationInMobi'

and adding InMobiAdapter into project, download from here.

Complete instruction on InMobi Support Center.

openFrameworks Undefined symbols for architecture arm64: _OBJC_CLASS_$_ofxiOSEAGLView

try building against the latest OF main trunk from here or NickHardeman's ported version of OF

Objective-C linker can't find references to Core UIKit symbols

I was not linking in the UIKit framework.

Go to project settings > General > Linked Frameworks and Libraries >

I needed to add UIKit.Framework in this case.

Link that helped me:

https://stackoverflow.com/questions/32880661/undefined-symbols-for-architecture-arm64-objc-class-sfsafariviewcontroller

Undefined symbols for architecture arm64: _OBJC_CLASS_$_CMAltimeter, referenced in SKMaps

Make sure you are linking the CoreMotion framework.

Anytime you have linking problems, refer to the documentation first to see which dependencies it has (in this case, @import CoreMotion).

In case you are sure and ask yourself: "But I'm sure this symbol is in this framework!", as you felt when you said SKMaps.framework was linked and it should solve it, you can check if the missing symbol (_OBJC_CLASS_$_CMAltimeter in this case) is part of that framework.

On Terminal, you can run:

nm -g /path/to/SKMaps.framework/SKMaps

and check if the symbol is there.

To make it easier:

nm -g /path/to/SKMaps.framework/SKMaps | grep CMAltimeter

In this example, you wouldn't find it, because it's not part of it. But if you run:

nm -g /path/to/CoreMotion.framework/CoreMotion | grep CMAltimeter

You will see that the symbols are there.

If it's not there, it's because it is not part of this library/framework/version and you should find where it is.
If it IS there indeed, it means it is not being linked during compilation, and adding it to the link options should solve it.



Related Topics



Leave a reply



Submit