ios 引用编译出现duplicate symbol错误的处理

1 头文件中定义了全局变量,因为多个文件引用了该头文件,导致重复定义。错误信息:

1
2
3
duplicate symbol _kMediaCmdParamVideFileName in:
/Users/lynn/Library/Developer/Xcode/DerivedData/xxx-dekysmkcblreiyesflewliynaudf/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/LeftViewController.o
/Users/lynn/Development/xxx/Framework/RvsViewerUI.framework/RvsViewerUI(UIImageView+YaMaXunCache.o)

问题原因:
在a.h中有如下定义

1
NSString *const kMediaCmdParamVideFileName   = @"AVSCIDNumber";

修改方案:

1
static NSString *const kMediaCmdParamVideFileName   = @"AVSCIDNumber";

2 workspace的多个工程之间,或者引用的framework都引用了同一个第三方库,导致类和方法多次实现。
解决方案:如果能拿到源码,只在主工程保留完整的源码,其他工程或者framework直接删掉.m、.swift文件,只留下头文件就可以了

Contents
,