Redlaser SDK 与 Scandit SDK 冲突

Redlaser SDK is conflicting with Scandit SDK

    duplicate symbol _OBJC_IVAR_$_Decoder.image in:
     /Users/......./ScanditSDK/libscanditsdk-iphone-2.1.11.a(Decoder-3DF771F40A970F8E.o)
     /Users/......./RedLaser/libRedLaserSDK.a(Decoder-DD22F2D71AAA0F2E.o)

   duplicate symbol _OBJC_IVAR_$_Decoder.cropRect in:
    /Users/......./ScanditSDK/libscanditsdk-iphone-2.1.11.a(Decoder-3DF771F40A970F8E.o)
    /Users/......./RedLaser/libRedLaserSDK.a(Decoder-DD22F2D71AAA0F2E.o)

................................................................
................................................................
   ld: 20 duplicate symbols for architecture armv7
   clang: error: linker command failed with exit code 1 (use -v to see invocation)

当我尝试导入 RedLaser 和 Scandit SDK 时,出现了这些重复符号问题。任何人都可以帮助解决这个问题...

提前致谢。

看起来这两个库都有同名的 class。这并不罕见,因为他们解决的是同一个问题:扫描和解码条形码。

如果供应商之一不更改 class 的名称,您将无法避免此错误。联系他们解决您的问题。

其实作为SDK的提供者,RedLaser和Scandit应该默认使用namespaces。使用名称空间的重要原因之一是避免重复符号错误。

您的另一个选择是删除其中一个库(或两个),并使用其他一些条码扫描 SDK,例如 ZXing, Zbar, or pdf417.mobi