高德地图,在 xcode10 的 beta 版中编译报链接错误,提示找不到 stdc++.6.0.9 库

2018-06-07 14:38:07 +08:00
 6du
如题,我们用 Pods 管理第三方库,经测试,高德的 AMap2DMap 和 AMap3DMap 都有此问题。高德接下来应该很快会=有解决方案,在此之前,我们可以手动修改 Pods-project.debug.xcconfig 文件,将“-l"stdc++.6.0.9"”删除。
Apple 多年前就把系统中的 libstdc++替换成为 LLVM 优化过的 libc++了,之前 MacOS 和 iOS 为了兼容性一直还是保留了 libstdc++可以给第三方 app 用,WatchOS 和 TvOS 都直接移除了。目前看来从 iOS 12 开始很可能也完全移除了对 libstdc++的支持,App 的代码需要在编译时链接到 libc++上
4467 次点击
所在节点    全球工单系统
1 条回复
6du
2018-06-08 20:03:03 +08:00
来自高德开放平台的答复 2018/06/08
您好,
非常抱歉,我们已经注意到这个问题,这个问题因为 xcode10 去掉了 stdC++库导致,但因为 cocoapods 不允许修改已经发出的 podspec,所以目前只有临时去解决这个问题,您可以在您的 Podfile 文件中增加下面的代码,以便去掉 stdc++.6.0.9 的引用:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
puts config.build_settings
xcconfig_path = config.base_configuration_reference.real_path
build_settings = Hash[*File.read(xcconfig_path).lines.map{|x| x.split(/\s*=\s*/, 2)}.flatten]
build_settings['OTHER_LDFLAGS'][' -l"stdc++.6.0.9"'] = ''
File.open(xcconfig_path, "w") do |file|
build_settings.each do |key,value|
file.puts "#{key} = #{value}"
end
end
end
end
end
感谢您的致信,欢迎持续关注高德开放平台!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/461193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX