问题出现背景:
早上组长跟我说编译一下当前分支,跑下instruments
,看看内存泄漏。
,我开始Shift + Comand + i
开始编译近4000个文件。 跑了近1个小时后,编译失败了!!!。
报错#import
但是正常编译 Run
是可以正常跑起来的。 当时就觉得好迷... ...
好了开始解决问题:
1. 首先想到的是确定下项目文件夹内是否包含这个文件(看文件命名和导入方式,猜测是'framework'),搜索之后未找到该文件。
2. 然后'Shift + comand + ,',查看'Profile' 和 'Run' 模式发现,'Profile'跑的是'release’,
‘Run'跑的是'debug'。这时发现了区别所在'<如上图>',那么接下来就好办了。
3. 到工程的'build setting'中搜索'search paths',找到'framework search paths' 对比'debug' 和 'release'
中静态库文件及路径发现,确实'release' 比 'debug'中少了 我当前报错文件。那我就把这个文件路径添加进来。重新编译
工程。
4. 编译又失败了,但是报错变了。这时报错信息为`"_OBJC_CLASS_$_xxx` 这种类型。这个就好办了,这种类型报错原因是因为
`xxx`文件未加入编译,当前我这个文件是在`framework`里,所以进入'build phases'中, 搜索'link binary with'
'libraries'。点击下面的加号,将当前的'framework'加入进来,再次编译。最终ok搞定~~~
记录以便复盘~