ios 应用闪退原因

news/2024/11/19 21:31:19/

iOS程序闪退是一种比较常见的现象。闪退的情况很多,造成程序闪退的原因也很多。

================================启动时闪退===================================

   情况一: 秒退是发生在程序刚刚启动的时候,在开发、苹果审核阶段都没有被发现的最大可能性就是,这个问题只会发生在老版系统、老版机型上。

 出现原因: 对于很多开发者,进行所有 iOS 版本,所有 iOS 机型覆盖测试是有难度的,苹果审核时也只是重点审核该应用在新机器、新版本下的运行情况,并不关注老系统。所以这也就是为什么会秒退的程序竟然

                也能通过苹果的审核。

解决办法:   公司提供一套测试机,全面测试,提高用户体验,防止用户流失。

***********************************************************************************

   情况二:苹果官方审查力度加大,导致代码或者数据库更新,或者项目中使用的第三方代码已经不适合当前的苹果官方的审查门槛。

出现原因:在新 iOS 上正常的应用,到了老版本 iOS 上秒退最常见原因是系统动态链接库或Framework无法找到。这种情况通常是由于 App 引用了一个新版操作系统里的动态库(或者某动态库的新版本)或只有

               新 iOS 支持的 Framework,而又没有对老系统进行测试,于是当 App 运行在老系统上时便由于找不到而秒退。

解决办法:开发人员发现这个问题后升级程序,或由用户自行升级其操作系统。

*************************************************************************************

   情况三:系统升级,用户数据丢失导致

出现原因:程序在升级时,修改了本地存储的数据结构,但是对用户既存的旧数据没有做好升级,结果导致初始化时因为无法正确读取用户数据而秒退。这类问题通常只需删除程序后重新安装一遍就能解决。但缺点是

               用户的既存数据会丢失——就算有备份可能也无济于事,因为备份下来的旧数据还是无法被正确升级。

解决办法:如果旧数据非常重要,那么就需要联系开发人员要求其进行程序修正了。

*************************************************************************************

   情况四:iOS版本升级导致问题,用到 App 里某个功能后闪退。

出现原因:是开发时用到了只有新版操作系统才支持的某个方法,而又没有对该方法是否存在于老系统中做出判断。例如程序启动时用到了 Game Center,而没有判断用户的

               机器是否支持 Game Center,于是就秒退了。 

解决办法:做判断

*************************************************************************************

   情况五:内存占用过大,导致程序崩溃。

出现原因:诸如内存不足、BAD_ACCESS 这类问题通常不管在新旧 iOS 上都会存在,内存不足导致闪退,并不常见 ,因为这类问题造成的秒退通常都能在测试和审核阶段被发现

以下是当个应用程序能够使用的最大的内存空间。<来自StackOverFlow>

 =====================================程序崩溃导致闪退===============================================

  常见程序崩溃原因:

  1.点击某个模块或者某个功能按钮,进行页面跳转,或者获取数据。---------------------->没数据会崩溃,数据错误会崩溃。

  2.点击某个模块或者某个功能按钮,进行页面跳转,或者获取数据。---------------------->业务逻辑处理不当会导致崩溃。

  3.点击某个模块或者某个功能按钮,直接导致崩溃:编辑代码时无报错,编译时出错。---------------------->代码逻辑错误,或者存在闪退符号的代码。

      4.某对象无法解析每个方法,该方法没有实现。

      5.Bundle中加载不存在的资源。

=========================================程序崩溃的解决办法==========================================

一:写个方法打印崩溃日志

 程序出现异常,要获得出错的原因,测试时可以通过打印崩溃信息来查看,上线后,要把用户的崩溃日志文件上传到服务器,以待处理。

    1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时的回调动作。

       NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);

    2. 实现自己的处理函数

       void UncaughtExceptionHandler(NSException *exception) {

     NSArray  *arr = [exception callStackSymbols]; //得到当前调用栈信息
     NSString  *reason = [exception reason]; //非常重要,就是崩溃的原因
     NSString  *name = [exception name]; //异常类型
//打印错误信息:
     NSLog (@ "exception type : %@ \n crash reason : %@ \n call stack info : %@" , name, reason, arr);
}

二,程序中集成友盟。

友盟可以帮我们了解应用趋势、渠道分析、留存分析、行为分析、用户属性、错误分析。其中的错误分析,可以帮我们找到问题的根源。

应用趋势
清晰展现应用的新增用户、活跃用户、启动次数、版本分布、行业指标等数据,方便您从整体掌控应用的运营情况及增长动态。
渠道分析

在哪里推广最有效?从哪里获取的用户最有价值?友盟统计渠道分析功能可以实时查看各渠道的新增用户、活跃用户、次日留存率等用户指标,通过数据对比评估不同渠道的用户质量和活跃程度,从而衡量推广效果。

留存分析

您可以掌握每日(周/月)的新增用户在初次使用后一段时间内的留存率,留存率的高低一定程度上反映了产品和用户质量的好坏。

行为分析

针对性地进行应用内的数据统计,了解用户的产品使用细节及行为特征,帮助您寻找产品改进的突破点,评估产品优化的效果。

用户属性

用户的基本属性和行为特征,帮助您全面了解用户。

错误分析

收集并归类崩溃日志,提供错误管理及分析工具,帮助开发者更好的解决问题,从而提高应用的稳定性,改善应用质量。


http://www.ppmy.cn/news/303561.html

相关文章

app常见的 闪退及闪退的原因

背景&#xff1a; 最近一直在休假&#xff0c;把自己在工作中梳理的点点滴滴汇总整理&#xff0c;这样既能及时地让自己巩固各个要点&#xff0c;也希望通过自己整理的东西帮助其他的同行少走弯路&#xff0c;避开我之前踩过的大大小小&#xff0c;深深浅浅的坑。 此问题经常…

ios12升级, App应用崩溃闪退

就在前几天(2018年9月18号), 苹果公司最新系统版本ios12发布, 身为程序员的我自然兴致冲冲的更新了xcode和iphone的系统. 更新完成之后, 随手点开公司的App应用, 卧槽, 公司的App应用居然闪退. 心系天下的我自然需要找出并解决掉这个问题. 因为 xcode 升级了, 所以首先就要尝…

APP闪退的原因

1、缓存垃圾过多 平时在使用软件的过程中&#xff0c;会产生一些垃圾文件&#xff0c;如果长时间不清理会导致设备越来越卡&#xff0c;也会出现闪退状况。 2、运行程序过多 如果不进行设置&#xff0c;很多软件都会自己运行&#xff0c;而手机后台程序过多会造成内存不足&a…

ipad为什么会闪退?有哪些办法可以修复ipad闪退问题?

随着智能设备的更新发展&#xff0c;iPad也成了日常生活中不可或缺的设备。 没有电脑的厚重、功能全、性能优良&#xff0c;可以说是休闲娱乐、简易办公的首选设备。 而iPad 闪退 问题&#xff0c;是较为普遍的存在。 总结iPad闪退修复方法&#xff0c;可根据可能出现的原因选…

为什么iPad使用APP莫名卡死或闪退的原因和解决办法

使用2018款iPad的用户&#xff0c;是否有出现过iPad上安装的某个APP莫名闪退&#xff1f; 虽然其它iPad同样也出现过APP闪退问题&#xff0c;但iPad2018款出现闪退现象最为明显。iPad是什么原因出现闪退问题&#xff0c;又该如何解救&#xff1f; 【总结】了以下iPad应用出现卡…

爬虫案例 王者荣耀 皮肤壁纸下载

代码 import urllib.request import json,sys,os函数功能 - 使用进度条 parameter - 下载的条数m0 k0 def down_progress(hero_num):global mglobal kif k!0 and m<99 and k%(int)(hero_num/100)0:m1print("\r", end"")print("Download progress:…

html 做王者荣耀

相信大家都玩过王者荣耀吧&#xff0c;那么王者荣耀在html中要怎么实现呢&#xff1f; 话不多说&#xff0c;上代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&q…

记事本html写代码运行挠脚心,tk挠脚心

嗯 发布于2019-05-04 09:20 “叮铃铃”&#xff0c;班主任走进教室&#xff0c;刚刚还在和尧婷婷斗嘴的墨多多马上闭嘴&#xff0c;装着在向尧婷婷学习。 班主任扑哧一声笑了&#xff1a;“墨多多&#xff0c;你装什么装&#xff0c;我看了你好久了。”墨多多不好意思地挠挠头&…