I have tried to add all GoogleMaps.Framework and GoogleMaps.bundle at the framework
When it comes to the execution, it causes the following error
I have no clue on what happens exactly. Would you please tell me the proper way to add Google MAP SDK frameworks instead ?
I have even added the framework libc++.dylib.
The error message
Undefined symbols for architecture i386:
"_CGImageSourceCreateImageAtIndex", referenced from:
_GMSCreateCGImageWithData in GoogleMaps(GMMImageSupport.o)
"_CGImageSourceCreateWithDataProvider", referenced from:
_GMSCreateCGImageWithData in GoogleMaps(GMMImageSupport.o)
"_GLKMatrix3Identity", referenced from:
gmscore::vector::GLLineGroup::SetTransform(gmscore::math::Matrix4f const&, gmscore::base::reffed_ptr<gmscore::vector::Camera> const&) in GoogleMaps(GLLineGroup.o)
"_GLKMatrix4Invert", referenced from:
-[GMSStreetViewView fadeOutLastScene] in GoogleMaps(GMSStreetViewView.o)
gmscore::streetview::Camera::Unproject(gmscore::math::Vector2f const&, bool*) const in GoogleMaps(Camera-B046EE312980DB98.o)
gmscore::vector::Camera::UpdateInternals() in GoogleMaps(Camera-3E3856CABC8A9C74.o)
gmscore::renderer::Camera3D::SetTransform(gmscore::math::Matrix4f const&) in GoogleMaps(Camera3D.o)
gmscore::renderer::Camera3D::Transform() in GoogleMaps(Camera3D.o)
non-virtual thunk to gmscore::renderer::Camera3D::Transform() in GoogleMaps(Camera3D.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Double check if you have all these frameworks on your Xcode Project
AVFoundation.framework
CoreData.framework
CoreLocation.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.dylib
libicucore.dylib
libz.dylib
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.framework
Please visit:-
https://developers.google.com/maps/documentation/ios/start#getting_the_google_maps_sdk_for_ios
to learn step by step instructions on Adding the Google Maps SDK for iOS to your project.
Most likely you forget to add ImageIO.framework
Related
I am trying to install the Google maps SDK and I am running through this error when running:
Undefined symbols for architecture x86_64:
"_CBAdvertisementDataManufacturerDataKey", referenced from:
-[GMSx_PEBeaconScanner centralManager:didDiscoverPeripheral:advertisementData:RSSI:] in GoogleMaps(PEBeaconScanner.o)
"_CBAdvertisementDataServiceDataKey", referenced from:
-[GMSx_PEBeaconScanner centralManager:didDiscoverPeripheral:advertisementData:RSSI:] in GoogleMaps(PEBeaconScanner.o)
"_CBCentralManagerScanOptionAllowDuplicatesKey", referenced from:
-[GMSx_PEBeaconScanner scanIfAppropriate] in GoogleMaps(PEBeaconScanner.o)
"_OBJC_CLASS_$_CBCentralManager", referenced from:
objc-class-ref in GoogleMaps(PEBeaconScanner.o)
"_OBJC_CLASS_$_CBUUID", referenced from:
objc-class-ref in GoogleMaps(PEBeacon.o)
objc-class-ref in GoogleMaps(PEBeaconScanner.o)
"_vImageBoxConvolve_Planar8", referenced from:
(anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I noticed the following changes when I upgraded an app that was using the older Google maps SDK that had been installed manually:
Need to link to CoreBluetooth.framework and Accelerate.framework in Build Phases -> Link Bundle with Libraries.
The -all_load flag under "Other Linker Flags" will cause "duplicate symbol" errors. (Use -ObjC instead.)
If you use the CocoaPods method of installation (per their current instructions), it should take of the required frameworks but it'll still get messed up by -all_load.
make sure following are included
GoogleMaps SDK framework and bundle
GoogleMaps (with .framework extension) is present at your root directory (where your .xcodeproj is)
GoogleMaps (with .bundle extension) is referenced in your xcode project
Following Frameworks
Accelerate.framework
AVFoundation.framework
CoreBluetooth.framework
CoreData.framework
CoreGraphics.framework
CoreLocation.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.dylib
libicucore.dylib
libz.dylib
OpenGLES.framework
QuartzCore.framework
Security.framework
SystemConfiguration.framework
Build Settings
Architecture value in your project settings includes armv7.
Other Linker Flags has -ObjC , if not present add it
**_vImageBoxConvolve_Planar8, referenced from: (anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)**
This required "Accelerate.framework". So, please add it.
Steps:
1)Build Phases -> Link Bundle with Libraries.
2)Click "+",
3)Select "Accelerate.framework". Finish.
===================================
Others errors required "CoreBluetooth.framework. So, please add it also in similar way.
It looks like Google's API needs CoreBluetooth for Beacon location. Link against CoreBluetooth.framework in your build phases and everything should be fine.
EDIT:
Make sure to install GoogleMaps through those instructions to avoid any issue: https://developers.google.com/maps/documentation/ios/start
I am having same problem, in my case I am having 2 reference of GoogleMap.framework, I deleted old framework reference and problem get solved :)
Click on project
In Build Phases -> Link Binary With Libraries -> Check any duplicate reference is present for GoogleMaps.framework
If yes then delete one, which you not added.
**_vImageBoxConvolve_Planar8, referenced from: (anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMaps(GLWaterGroup.o)**
This required "Accelerate.framework". So, please add it.
Steps:
1)Build Phases -> Link Bundle with Libraries.
2)Click "+",
3)Select "Accelerate.framework". Finish.
Removing -all_load flag from (Targets->Build Settings->Other linker flag) resolved my issue while using cocoa pods.
If anyone is experiencing this today, Linking CoreLocation.framework binary in Build Settings did the trick for me
I have added google map framework but I have got following error
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GMSMutablePath", referenced from:
objc-class-ref in ViewController+ProjSwizzles.o
"_OBJC_CLASS_$_GMSPolygon", referenced from:
l_OBJC_$_CATEGORY_GMSPolygon_$_ZSwizzles in GMSPolygon+ZSwizzles.o
objc-class-ref in ViewController+ProjSwizzles.o
"_OBJC_CLASS_$_GMSMapView", referenced from:
l_OBJC_$_CATEGORY_GMSMapView_$_Swizzles in GMSMapView+Swizzles.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
please check your Frameworks
AVFoundation.framework
CoreData.framework
CoreLocation.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.dylib
libicucore.dylib
libz.dylib
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.framework
I added Parse.framework to my project. In AppDelegate.m, I just import it and set the application ID. It seemed OK, but when I run it, I get 4 errors.
What other frameworks should I add, or what else should I do ?
Here are the frameworks I added:
AudioToolbox.framework
CFNetwork.framework
CoreGraphics.framework
CoreLocation.framework
MobileCoreServices.framework
QuartzCore.framework
Security.framework
StoreKit.framework
SystemConfiguration.framework
libz.dylib
libsqlite3.dylib
Parse.framework
And here are the errors I am getting:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_BFExecutor", referenced from:
objc-class-ref in Parse(Parse.o)//And other six
"_OBJC_CLASS_$_BFTask", referenced from:
objc-class-ref in Parse(Parse.o)//And other six
"_OBJC_CLASS_$_BFTaskCompletionSource", referenced from:
objc-class-ref in Parse(PFOfflineStore.o)//And other six
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
You must also add the Bolts.framework that comes with the Parse SDK as described in Step 2 on the quick start page:
https://www.parse.com/apps/quickstart#parse_data/mobile/ios/native/existing.
And ensure it gets listed under "Build Phases -> Link Binary with Libraries."
EDIT
Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error
Found this.
This usually happens when you have multiple classes with same name in your. You might have included a file more then once.
Also check if you have by any chance imported .m file into some file.
I am trying to generate SDK in that am using audio related framework ,when compiling code am getting below linking errors .Any help for solving these issues.
Undefined symbols for architecture armv7:
"_vDSP_ztoc", referenced from:
FFTRealCalculator::InverseFFT_A(ComplexSplit*, float*, int) in libEywaSDK.a(FFTRealCalculator.o)
"_vDSP_ctoz", referenced from:
FFTRealCalculator::ForwardFFT_A(float const*, unsigned long, ComplexSplit*) in libEywaSDK.a(FFTRealCalculator.o)
"_vDSP_fft_zrip", referenced from:
FFTRealCalculator::ForwardFFT_A(float const*, unsigned long, ComplexSplit*) in libEywaSDK.a(FFTRealCalculator.o)
FFTRealCalculator::InverseFFT_A(ComplexSplit*, float*, int) in libEywaSDK.a(FFTRealCalculator.o)
"_vDSP_create_fftsetup", referenced from:
FFTRealCalculator::Initialize(unsigned char) in libEywaSDK.a(FFTRealCalculator.o)
"_vDSP_destroy_fftsetup", referenced from:
FFTRealCalculator::~FFTRealCalculator() in libEywaSDK.a(FFTRealCalculator.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
These symbols come from Accelerate Framework
I suspect you need to add this to your project.
Go to targets -> Valid Architectures & Remove armv7.
Clean your project & build
Hope it will work for you.
I am trying to build this project, but its display below error,
Undefined symbols for architecture i386:
"cv::merge(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, cv::_OutputArray const&)", referenced from:
-[RRMainViewController colorSobelEdge:isVertical:] in RRMainViewController.o
"cv::split(cv::Mat const&, std::vector<cv::Mat, std::allocator<cv::Mat> >&)", referenced from:
-[RRMainViewController colorSobelEdge:isVertical:] in RRMainViewController.o
"cv::Exception::Exception(int, std::string const&, std::string const&, std::string const&, int)", referenced from:
-[RRMainViewController floodFillPostprocess:WithColor:] in RRMainViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have added OpenCV.framework and added this line in .pch file
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
Added this library in project
libstdc++.6.0.9.dylib
libc++.dylib
libz.1.2.5.dylib
But still got above error.. please help... thanx in advance..
Here is the screenshot for my Build phase
=================================================================
SOLVED
This answer by #karthika has helped me.
Opencv framework or some other files are not added in the build phases. Go to project settings->Build phases->Link binary with libraries and check if opencv exists in the list. Otherwise click on + and add it
Then go in the build phases to compile sources and make sure RRMainViewController.m is present in the list. Otherwise click on + and add it
This answer may help you too: Undefined symbols for architecture i386: _OBJC_CLASS_$_SKPSMTPMessage", referenced from: error