iOS真机调试错误集锦1

1、报错为Linker时,表示没有导入所需的文件

2、EXC_BAD_ACCESS(SIGBUS或SIGSEGV)

通常由于内存管理问题引起,app进入毁坏状态

这种错误通常是内存管理的问题,一般是访问了已经释放的对象导致的,可以开启僵尸对象(Zombie Objects)来定位问题:

在Xcode的菜单:

Product->Scheme->Edit Scheme->Run ???.app

右边的选项中,选中Enable Zombie Objects

开启该选项后,程序在运行时,如果访问了已经释放的对象,则会给出较准确的定位信息,可以帮助确定问题所在。

该功能的原理是,在对象释放(retainCount为0)时,使用一个内置的Zombie对象,替代原来被释放的对象。无论向该对象发送什么消息(函数调用),都会触发异常,抛出调试信息。

记得在问题被修复后,关闭该功能

3、SIGBART:通常会在Debug Output窗口输出一些错误信息

运行要使用iOS模拟器的程序时,如果出现了”Unable to run app in SimulatorAn error was encountered while running…”错误提示,只需iOS Simulator—>Reset Content and Setting…—>Reset即可

4、this class is not key value coding-compliant for the key leftView.'

出现这种错误意思是outlet没有正确连接(但有时候已经正确连接了,只是之前有出现过没有正确连接的情况,还抱这个错误,这就有可能是因为Xcode的缓存问题,没有及时更新改动,这种情况下clean掉Xcode得缓存即可:command+shift+k)

故事板上的tableViewController上面cell上面的控件要想直接outlet连接成视图控制器的属性,必须得将其tableView的cell属性设置成static cell不然系统无法区分是哪个cell的控件连接到视图控制器,且在.m文件中得确定cell分区数和行数的方法要删掉(这两个方法是为可重用cell而编写的。

5、reason: '*** +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: A multiplier of 0 or a nil second item together with a location for the first attribute creates an illegal constraint of a location equal to a constant. Location attributes must be specified in pairs'

出现这种错误的原因是还没有将视图加进控制器中(self.view addSubview:xxxxxx),就先对这个视图进行了布局constraint

6、ERROR: AddressSanitizer: heap-buffer-overflow on address

是因为开启了AddressSanitizer,关闭之后就不会出现这个问题

7、code signing is required for product type 'Application' in SDK 'iOS 7.0',

就是说代码签名证书不对劲。

解决方案,

1.选择工程->Build Settings -> Code Signing -> Code Signing Identity -> Debug -> Any ios SDK将选项改为:iPhone Developer

2.重新下载你的证书,或者修改通配符,或者说修改你的appid。选择工程-》Bundle Identifier修改为最新的appid。造成这种原因是因为你修改了你的app sdk版本。

如果还不行,可以试试

Edit Project Setting下面的那个菜单:Edit Active Target “Hello World”=》Build=》Code Signing=》Any ios的值设置为iphone Developer

8、“App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.plistfile.”

简而言之:ATS禁止了HTTP的明文传输,因为它不安全。可以修改Info.plist文件,让它临时允许明文传输。

解决办法:

在Info.plist文件中添加"App Transport SecuritySettings", Type为"Dictionary",再添加"Allow Arbitray Loads", Type为"Boolean",“Value”为“YES”即可。

9、linker command failed with exit code 1 (use -v to see invocation)

一般为添加的静态库出错,一般团队多人的项目会出现这种情况,这时查看一下项目中的静态库,有些变成浅色的就说明该静态库添加失败了,重新添加一遍之后就OK了。

你可能感兴趣的:(iOS真机调试错误集锦1)