如果您设置了一个包含以下Podfile的测试项目(名为skobblerGoogleMapTest):
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, :deployment_target => '6.0'
pod 'ScoutMaps-iOS-SDK'
pod 'GoogleMaps'
link_with ['skobblerGoogleMapTest']
您将收到以下一组链接错误:
duplicate symbol ___gl_noBeginData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
duplicate symbol ___gl_noEdgeFlagData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
duplicate symbol ___gl_noVertexData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
duplicate symbol ___gl_noEndData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
duplicate symbol ___gl_noErrorData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
duplicate symbol ___gl_noCombineData in:
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(tess.o)
/Users/tomhorn/dev/skobblerGoogleMapTest/Pods/ScoutMaps-iOS-SDK/SKMaps.framework/SKMaps(tess.o)
ld: 6 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
所以看起来ScoutMaps和GoogleMaps都链接到tess.c,它定义了这些符号(某种GL曲面细分回调机制?O_o)。
我想ScoutMaps(或GoogleMaps虽然不太可能;))有可能用不同的名称定义这些回调吗?
如果来自ScoutMaps的人看到了这一点,那就太棒了。
答案 0 :(得分:2)
事实上,使用Google Maps SDK的旧版本而不是1.10.1 - 2015年6月将出现此问题。尝试使用1.10.0版Google Maps SDK。
谷歌停止支持iOS6,所以这一行:
platform :ios, :deployment_target => '6.0'
正在下载的旧版本库中的结果。将其更改为:
platform :ios, :deployment_target => '7.0'
一切正常。