- 设备碎片化:由于设备极具多样性,APP在不同的设备上可能有表现不同;
- 带宽限制:带宽不佳的网络对APP所需的快速响应时间可能不够;
- 网络的变化:不同网络间的切换可能会影响APP的稳定性;
- 内存管理:可用内存过低,或非授权的内存位置使用可能会导致APP失败;
- 用户过多:连接数量过多可能导致APP崩溃;
- 代码错误:没有经过测试的新功能,可能会导致APP在生产环境中失败;
- 第三方服务:广告或弹出屏幕可能会导致APP崩溃;
- 内存报警闪退:当iOS检测到内存过低时,它的VM系统会发出低内存警告通知,尝试回收一些内存;
(1):在DeBug模式下,可以主动将客户端执行的动作逻辑写入一个log文件中,这样程序同学可以将内存预警的逻辑写入该log文件
(2):可以通过Instruments工具中的Allocations和Leaks模块库来发现内存分配问题和内存泄漏问题 - 响应超时:当应用程序对一些特定的事件(比如:启动、挂起、回复、结束)响应不及时,苹果的watchdog机制会把应用程序干掉,并生成一份相应的crash日志;
- 用户强制退出:先按住电源键,直到出现“滑动关机”的界面时,再按住Home键,这时候当前应用程序会被终止掉,并且产生一份相应事件的crash日志;
- 数组越界、空指针、页面未注册…也会引起APP闪退崩溃;