Duplicate Symbols for Architecture arm64报错问题解决方案

          一般这个报错目前很少出现了,出现大多数情况意味着有重复的文件,所以可以优先从这里入手查询,比如笔者就是在和cocos creator项目融合集成是出现的此问题,cocos项目生成原生的iOS底包后会自动包含了socketRocket、SocketIO等websocket包,而本项目恰好需要,之前没看底包中的内容,直接pod导入了socketrocket,xcode12没明显报错,编译时报此错误,思考了下近期修改的就是增加了个socketrocket,因此全局一搜索发现cocos底包中也存在老版本的socketRocket,意外发现SocketIO也存在,不得不说这个cocos底包太臃肿啥都有。一开始为了开发速度果断去掉了自己pod的socketRocket,引用已有的SDK,项目稳定后把cocos生成的C++底包做了一次筛查和优化。回归正题,出现以上问题检查下面几步没错:

1.查看被编译的文件中是否有重复的(如果有文件显示红色一般是编译器没有找到的文件)。
进入Target->Build Settings->Compile Sources下,查看是否有异常文件。

2.检查是否在#import头文件的时候,不小心把.h写成了.m。

3.进入Target->Build Settings->Apple LLVM 9.0-Code Generation下,将No Common Blocks设置为NO。
xcode 10以后 在Target->Build Settings->Apple Clang - Code Generation下,将No Common Blocks设置为NO。

你可能感兴趣的:(iOS,bug)