1.由于工程中使用的百度地图的其他SDK在加入百度导航SDK时报如下错误:
Undefined symbols for architecture arm64:
"_OpenSSL_add_all_algorithms", referenced from:
_baidu_vi::BNCVSocketMan::BNCVSocketMan() in libbaiduNaviSDK.a(BNVSocket.o)
"_SSL_CTX_set_options", referenced from:
_baidu_vi::BNCVSocketMan::BNCVSocketMan() in libbaiduNaviSDK.a(BNVSocket.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决方案:只需要把导航的SDK放在其他百度SDK后面引用就好了,如:
2.发起导航时报TTS授权失败
解决方案:
(1)确保已在百度语音管理平台(http://yuyin.baidu.com/app)添加了应用,开通语音合成服务,并且也填写过包名
(2)确保在初始化导航时调用过以下代码:
//TTS在线授权
[BNCoreServices_Instance setTTSAppId:@"10224308"];
(3)确保将baiduNaviSDK.bundle,baiduNaviSDK.xcassets这两个文件夹加入Copy Bundle Resources条目下,如:
经过以上解决方案,我已能正常在工程中使用导航SDK了
思考:
导入三方SDK的时候最好还是先把将要导入的三方SDK复制到工程内,再使用"Add File to...",最后需检查要导入的三方库是否在"Link Binary With Libaries"中找到相应的.a或则.framework文件,以及在"Copy Bundle Resources"中是否能找到相应三方库对应的资源文件如:.bundle文件,如果没有需要加入。