1.头文件导入时报错

类似这种看关键词,是在编译时候发现了重复,可以全局搜索一下,
首先看看是不是导入头文件时候将 .h后缀误写成了.m
其次在Targets-Build Phases-Compile sources中查找错误提示中的类名,看是不是有两个完全重复的.m文件
2.使用三方库时报错

添加极光推送时按照网上的一些文章,没有细看极光的官网,少添加了一个 .tbd 文件,添加了libresovl.tbd后就可以了

这里的重点是: Undefined symbols 如果对真机和模拟器架构不是十分清楚的话容易被后面的架构所迷惑关于架构方面的可以参考这里链接感谢原作者
这种情况通常是用三方时候少加依赖库了,仔细看看官方文档,看看需要添加哪些库一般就可以解决了
3. 'libxml/tree.h' file not found
正确做法因该是Header Search Paths 设置为 ${SDKROOT}/usr/include/libxml2
4.在使用自己的写的动态库(Framework)时遇到的问题:
Could Not build module 'Social(或其它的名字xxxx)'
解决:change In target setting the "Allow Non-modular Includes in Framework modules" setting to YES(从stackoverflow查到的答案)
5.使用socket.io(swift写的) 时报错
描述:dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/containers/Bundle/Application/76625E1A-5250-4FA4-807D-09B1877A3F13/X001.app/Frameworks/SocketIO.framework/SocketIO
Reason: image not found。
解决:1.将这个设置为 YES

2.如果是非苹果官方的库,要将embed那里进行设置,进行嵌入embed framework
6.单元测试
单元测试时因为是一个独立的工程,所以把Framework的路径重新配置一下,否则会报找不到framework,直接在Project里进行配置,单元测试的工程里就也有了。
这个地方有个坑:当你直接把framework拖过去的时,他生成 的是一个文件的路径,而不是文件夹的目录路径,所以要将最后面那个文件给手动删掉
参考连接 感谢作者的分享
7. 团队开发,git 提交不完成,导致找不到某个文件

背景:团队开发中,一个兄弟用了个三方库,里面包含了SDWebImage,他删除了工程中原来的SD库,然后在git提交时,自己的图片库中包含的SD没有提交,当时他忘记在蓝色文件夹前面打勾了,他以为那个没用,结果,其他人pull代码之后就发现问题了,找不到这个文件
解决方案:让那个同事将他没有提交的库,打上勾,提交一下,再pull下,就没问题了。
8. 关于代理的生命周期问题会出现的bug
背景:一个单例类CCODSeatManager,里面有个代理协议CCODSeatManagerDelegate,里面有针对登录登出,电话,IM 的相关代理方法,最典型的是登录,登出,初始化登录后,在登录页面有登录成功的代理回调,这个时候,这个单例被当前VC持有,代理的生命周期在登录这个VC里面 ,现在去 登出VC,里面也有这个单例的代理,然后登出的代理执行完之后,反初始化,然后再回到登录界面,进行初始化登录,相关的代理方法就不走了,因为当前的代理被登出VC持有,所以需要在登录中重新设置一下代理,所以这种情况,需要在viewWillAppear中设置一下。
9.电脑内存不够,导致莫名报错
因为公司电脑是128G的,导致有时候莫名的报错,因为xcode运行时候,需要运行空间,进行数据相关的备份和整理,这时候如果空间不够用,就会有各种问题,此时,要首先clean,删除derivedata,还不行,就要重启电脑,删一些东西,六点空闲空间出来。
网友评论