最近接手了一个以前别人写的老项目,用的是google地图,运行的时候总是说'GoogleMaps/GoogleMaps.h' file not found,找到对应的framework文件,查看里边确实什么内容也没有,当然找不到文件,于是想重新配置google地图的SDK,但是最让人头疼的事情发生了,google地图aip配置说明竟然全是英文的……
后来在网上找了一些google地图的配置资料,简单说一下我修复这个问题的过程:
1.下载最新的google地图的SDK,下载地址为:https://developers.google.com/maps/documentation/business/mobile/ios/
2.将下载后的GoogleMapsM4B.framework替换原来项目中的GoogleMaps.framework
3.替换原来项目中的GoogleMaps.bundle,GoogleMaps.bundle可在GoogleMapsM4B.framework-->Resources中找到
4.将项目中的#import <GoogleMaps/GoogleMaps.h>替换为#import <GoogleMapsM4B/GoogleMaps.h>
配置完这些,你会发现不会再报找不到文件的错误了,但是又出现了新的错误
Undefined symbols for architecture arm64:
"_vImageBoxConvolve_Planar8", referenced from:
(anonymous namespace)::CreateBlurredImage(CGImage*, double, double) in GoogleMapsM4B
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
开始的时候,在百度上找了很久都没有相关问题的解决办法,后来在google上找到一篇文章,完美解决问题,文章链接为: http://stackoverflow.com/questions/30712852/googlemapssdk-undefined-symbols-for-architecture-x86-64主要是缺少两个依赖库,CoreBluetooth.framework和Accelerate.framework,将这两个依赖库添加到项目中,问题解决,程序可以正常运行。