注册

pod装环信SDK和原来项目冲突

我创建了一个纯净的新项目 
pod 'EaseMobSDKFull'
这个时候是好的编译过,link也过。
 
如果在新项目中加入jsoncpp的源码如 "json_writer.cpp"
则link的时候失败了 错误内容 duplicate symbo。显然环信也用到了"json_writer.cpp"。
我们项目是一个成熟的项目也用到了"json_writer.cpp",我们不想去掉"json_writer.cpp"。请问有什么办法解决么?
 duplicate symbol __ZN4Json8FeaturesC2Ev in:

    /Users/apple/Library/Developer/Xcode/DerivedData/p4-hcituljkiqhpzaaingyiealrwqkx/Build/Intermediates/p4.build/Debug-iphonesimulator/jryMobile.build/Objects-normal/x86_64/json_reader.o

    /Users/apple/project/rjhy/ytxmobile-iphone-prototype/YtxMobile/Pods/EaseMobSDKFull/EaseMobSDKFull/lib/libEaseMobClientSDK_x86_64.a(jsoncpp.o)
已邀请:
 
duplicate symbol __ZTVN4Json10FastWriterE in:
/Users/apple/Library/Developer/Xcode/DerivedData/p4-hcituljkiqhpzaaingyiealrwqkx/Build/Intermediates/p4.build/Debug-iphonesimulator/jryMobile.build/Objects-normal/x86_64/json_writer.o
/Users/apple/project/rjhy/ytxmobile-iphone-prototype/YtxMobile/Pods/EaseMobSDKFull/EaseMobSDKFull/lib/libEaseMobClientSDK_x86_64.a(jsoncpp.o)
duplicate symbol __ZN4Json10FastWriterC1Ev in:
/Users/apple/Library/Developer/Xcode/DerivedData/p4-hcituljkiqhpzaaingyiealrwqkx/Build/Intermediates/p4.build/Debug-iphonesimulator/jryMobile.build/Objects-normal/x86_64/json_writer.o
/Users/apple/project/rjhy/ytxmobile-iphone-prototype/YtxMobile/Pods/EaseMobSDKFull/EaseMobSDKFull/lib/libEaseMobClientSDK_x86_64.a(jsoncpp.o)
duplicate symbol __ZN4Json10FastWriter23enableYAMLCompatibilityEv in:
/Users/apple/Library/Developer/Xcode/DerivedData/p4-hcituljkiqhpzaaingyiealrwqkx/Build/Intermediates/p4.build/Debug-iphonesimulator/jryMobile.build/Objects-normal/x86_64/json_writer.o
/Users/apple/project/rjhy/ytxmobile-iphone-prototype/YtxMobile/Pods/EaseMobSDKFull/EaseMobSDKFull/lib/libEaseMobClientSDK_x86_64.a(jsoncpp.o)
把我们的去掉有问题啊, json.h你们又没有暴露出来。去掉我们自己的也没法用你们的。
 
2种解决方案。
1.改自己的源码,把 namespace JSon 改成 namespace XXJSON。
2.删掉冲突文件.cpp或.m的实现。.h保留。
以上两种方式不适合第三方库和环信库的冲突。
 
给环信的建议
环信把你们使用到的第三方源文件改变namespace
我们的没暴漏出来,现在只能修改你自己的

要回复问题请先登录注册