网站如何做吸引人的项目灯箱网站开发

web/2025/9/27 15:37:31/文章来源:
网站如何做吸引人的项目,灯箱网站开发,做一个网上商城需要多少钱,查找全国免费网站建设目录 描述 思路 查看ipa包崩溃日志 简单查看手机崩溃信息几种方式 方式1:手机设置查看崩溃日志 方式2: Xocde工具 方式3: 第三方软件克魔助手 环境配置 实时日志 奔溃日志分析 方式四#xff1a;控制台资源库 线上崩溃日志 线上监听crash的几种方式 方式1: 三方平… 目录 描述 思路 查看ipa包崩溃日志 简单查看手机崩溃信息几种方式 方式1:手机设置查看崩溃日志 方式2: Xocde工具 方式3: 第三方软件克魔助手 环境配置 实时日志 奔溃日志分析 方式四控制台资源库 线上崩溃日志 线上监听crash的几种方式 方式1: 三方平台的SDK 方式2: 自己实现异常监听然后提交后台 常见的造成的崩溃的情况 1.数组越界 2.多线程问题 3.主线程无响应 4.野指针 信号可捕获的崩溃日志收集 信号捕获的原理 信号不可捕获的崩溃日志收集 iOS 后台保活的 5 种方式 采集过程原理 崩溃日志分析 描述 模拟器和真机调试运行正常但是导出ipa包安装运行出现奔溃。记录一下提醒一下遇到同样问题的人少走弯路。 思路 首先遇到问题头脑要保持清醒。思考为什么会出现这样的问题 模拟器和真机调试运行正常模拟器和真机调试是在DeBug模式下运行的导出ipa包的环境是Release模式下 所以可以重点是在Release模式下查看崩溃信息才能定位问题。 查看ipa包崩溃日志 手机数据线连接电脑借助克魔助手就可以看Xcode - Window- Devices and Simulator 进入后选择【View Device Logs】 日志文件看的好难受好像也没有办法定位具体问题接着分析 刚才不是分析在Release模式下出现的问题嘛所以可以直接将本地调试的Dudeg的模式修改为Relese模式然后运行。 默认是Debug模式选择Release模式然后本地调试的时候就和导出的ipa环境一致啦。 同时记得要勾选 【Zombie Ojects】可以定位出野指针和僵尸对象。然后运行Xcode可以定位到具体问题啦同时控制台也输出了使用的对象提前释放导致的问题。 简单查看手机崩溃信息几种方式 方式1:手机设置查看崩溃日志 步骤【设置】- 【隐私】 - 【分析与改进】- 【分析数据】 方式2: Xocde工具 手机数据线连接电脑借助Xcode就可以看Xcode - Window- Devices and Simulator具体和上面一致请参照上图示例。 方式3: 第三方软件克魔助手 通过数据线连接 iOS 手机和电脑 在iOS应用开发过程中调试日志和奔溃日志是开发者必不可少的工具。然而使用Xcode Console等工具查看日志可能不够方便而且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了极大的便利本文将详细介绍其功能和使用方法。 克魔助手会提供两种日志一种是实时的一种的是崩溃的。由于崩溃日志的环境很麻烦目前只展示实时日志操作步骤 环境配置 电脑一台台式和笔记本都OK iPhone 手机一台 下载克魔助手 下载爱思助手或者itunes驱动 实时日志 克魔助手提供了实时日志功能能够在电脑上实时查看设备的日志信息。 下面是操作步骤 1.先将 iPhone 通过数据线连接上电脑iOS 手机上一定要信任这次连接 2.在电脑上打开克魔助手-实时日志。 3.因为你已经通过数据线连接了电脑和手机所以此时在控制台的左侧工具栏里会显示你的设备如果此时直接点击 开始日志那将输出的是此设备的所有日志那么如果想要查看某一App的日志查看起来是非常繁琐的那我就需要对App继续筛选过滤再输出。 4.选择需要查看iPhone里面的App可以通过 command 空格搜索应用然后点击 开始日志将会输出关于此App的所有日志 5.如果需要对App里面的关键字继续过滤处理可关键字那直接输入后点击清空日志再点击空白处即可过滤成功 6.当你过滤出来了错误信息后你可以将这些错误日志存储起来形成一个 errorlog 提交给到开发点击 导出日志即可生成一个文件夹。 奔溃日志分析 克魔助手还提供了奔溃日志分析查看模块可以方便地导出和查看iOS设备上的奔溃日志并对其进行符号化、格式化和分析。 操作如下 1.选择需要查看的奔溃日志。 2.点击“导出日志”即可生成一个包含奔溃日志的文件夹便于提交给开发团队进行分析。 PS数据连接时先将 iPhone 通过数据线连接上电脑iOS 手机上一定要信任这次连接开启WiFi调试时无需数据线 方式四控制台资源库 可以看到所有和该电脑同步过的设备的崩溃日志(.crash文件) 输入下方的文件地址 ~/Library/Logs/CrashReporter/MobileDevice找到自己手机设备的日志信息 开发程序过程也会出现程序crash的情况那么这时生成的文件目录为 ~/Library/Logs/DiagnosticReports/线上崩溃日志 线上监听crash的几种方式 方式1: 三方平台的SDK 例如腾讯Bugly、crashlytics、友盟SDK 方式2: 自己实现异常监听然后提交后台 自己实现异常监听的方式稍微复杂点需要异步监听任务不能影响到主进程的任务体验 常见的造成的崩溃的情况 1.数组越界 在取数据索引时越界App 会发生崩溃。还有一种情况就是给数组添加了 nil 会崩溃 2.多线程问题 在子线程中进行 UI 更新可能会发生崩溃。多个线程进行数据的读取操作因为处理时机不一致比如有一个线程在置空数据的同时另一个线程在读取这个数据可能会出现崩溃情况。 3.主线程无响应 如果主线程超过系统规定的时间无响应就会被 Watchdog 杀掉。这时崩溃问题对应的异常编码是 0x8badf00d。 4.野指针 野指针指向一个已删除的对象访问内存区域时会出现野指针崩溃。野指针问题是需要我们重点关注的因为它是导致 App 崩溃的最常见也是最难定位的一种情况 信号可捕捉信号不可捕捉KVO问题后台任务超时NSNotification线程问题内存打爆数组越界主线程卡顿超阀值野指针.... 信号可捕获的崩溃日志收集 打开 Xcode 的菜单选择 Product - Archive 然后在提交时选上“Upload your app’s symbols to receive symbolicated reports from Apple”以后你就可以直接在 Xcode 的 Archive 里看到符号化后的崩溃日志了。 但是这种查看日志的方式每次都是纯手工的操作而且时效性较差。所以目前很多公司的崩溃日志监控系统都是通过克魔助手这样的第三方开源库捕获崩溃日志然后上传到自己服务器上进行整体监控的。 信号捕获的原理 在崩溃日志里你经常会看到下面这段说明 Exception Type: EXC_BAD_ACCESS (SIGSEGV)它表示的是EXC_BAD_ACCESS 这个异常会通过 SIGSEGV 信号发现有问题的线程。虽然信号的种类有很多但是都可以通过注册 signalHandler 来捕获到。 其实现代码如下所示 void registerSignalHandler(void) {signal(SIGSEGV, handleSignalException);signal(SIGFPE, handleSignalException);signal(SIGBUS, handleSignalException);signal(SIGPIPE, handleSignalException);signal(SIGHUP, handleSignalException);signal(SIGINT, handleSignalException);signal(SIGQUIT, handleSignalException);signal(SIGABRT, handleSignalException);signal(SIGILL, handleSignalException); }void handleSignalException(int signal) {NSMutableString *crashString [[NSMutableString alloc]init];void* callstack[128];int i, frames backtrace(callstack, 128);char** traceChar backtrace_symbols(callstack, frames);for (i 0; i frames; i) {[crashString appendFormat:%s\n, traceChar[i]];}NSLog(crashString); }上面这段代码对各种信号都进行了注册捕获到异常信号后在处理方法 handleSignalException 里通过 backtrace_symbols 方法就能获取到当前的堆栈信息。堆栈信息可以先保存在本地下次启动时再上传到崩溃监控服务器就可以了。 信号不可捕获的崩溃日志收集 App 退到后台后即使代码逻辑没有问题也很容易出现崩溃。而且这些崩溃往往是因为系统强制杀掉了某些进程导致的而系统强杀抛出的信号还由于系统限制无法被捕获到。 iOS 后台保活的 5 种方式 Background ModeBackground FetchSilent PushPushKitBackground Task (App 退后台后默认都会使用这种方式) 采集过程原理 Background Task 这种方式就是系统提供了beginBackgroundTaskWithExpirationHandler 方法来延长后台执行时间可以解决你退后台后还需要一些时间去处理一些任务的诉求。 - (void)applicationDidEnterBackground:(UIApplication *)application {self.backgroundTaskIdentifier [application beginBackgroundTaskWithExpirationHandler:^( void) {//你的任务逻辑[self yourTask];}]; }在这段代码中yourTask 任务最多执行 3 分钟3 分钟内 yourTask 运行完成你的 App 就会挂起。 如果 yourTask 在 3 分钟之内没有执行完的话系统会强制杀掉进程从而造成崩溃这就是为什么 App 退后台容易出现崩溃的原因。 采用 Background Task 方式时我们可以根据 beginBackgroundTaskWithExpirationHandler 会让后台保活 3 分钟这个阈值先设置一个计时器在接近 3 分钟时判断后台程序是否还在执行。如果还在执行的话我们就可以判断该程序即将后台崩溃进行上报、记录以达到监控的效果。 崩溃日志分析 我们采集到的崩溃日志主要包含的信息为进程信息、基本信息、异常信息、线程回溯。 进程信息崩溃进程的相关信息比如崩溃报告唯一标识符、唯一键值、设备标识基本信息崩溃发生的日期、iOS 版本异常信息异常类型、异常编码、异常的线程线程回溯崩溃时的方法调用栈。 一些被系统杀掉的情况我们可以通过异常编码来分析。 常见的就是如下三种0x8badf00d表示 App 在一定时间内无响应而被 watchdog 杀掉的情况。0xdeadfa11表示 App 被用户强制退出。0xc00010ff表示 App 因为运行造成设备温度太高而被杀掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞做门户网站注册域名的注意事项

这win下默认的主题令人窒息 打开git bash,使用命令cd ~然后用Atom命令打开文件.minttyrc.atom .minttyrc如果默认没有.minttyrc文件,自己新创建的也行。里面的内容填写如下:FontConsolas FontHeight14ForegroundColour131,148,150 Background…

网站域名设计方案短视频分享网站开发

映射配置 在创建索引时,可以预先定义字段的类型(映射类型)及相关属性。 数据库建表的时候,我们DDL依据一般都会指定每个字段的存储类型,例如:varchar、int、datetime等,目的很明确,就…

装饰公司 网站模板网站ui设计是什么

vs2010做mvc3 开发,用的是Razor的View,想修改默认浏览器,发现右键没有"浏览方式",把View改成.aspx的,也没有找到这个选项. 解决方法两种 (1)最简单的,建个Asp.net Web应用程序,在随便一个xxx.aspx页面,右键"浏览方式"即可.. (2)通过修改项目属性也可以,右键…

一站式做网站网站发外链

故障现象:客户某台WINDOWS服务器掉电,ORACLE数据库STARTUP提示控制文件CONTROL01.CTL、CONTROL02.CTL被破坏。一、处理控制文件异常故障方法:直接拷贝CONTROL0一、处理控制文件异常故障二、尝试启动SQL> startup;ORACLE例程已经启动。Tota…

网站内容怎么编辑四种常用的erp软件

点击查看最新在线IDE流行度最新排名(每月更新) 2024年04月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多,人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

秦皇岛市城乡建设网站seo优化资源

在 Ubuntu 上安装 MySQL 的步骤如下: 更新系统软件包列表: sudo apt update 安装 MySQL 服务器: sudo apt install mysql-server 安装完成,可以使用以下命令检查 MySQL 服务器是否正在运行: sudo systemctl status mysql 如果 MyS…

淄博企业网站做数学网站

题目 题目链接: https://www.nowcoder.com/practice/c43a0d72d29941c1b65c857d8ac9047e 思路 直接模拟参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值…

重庆微信网站代理商珠海蓝迪装饰公司官网

大家好,欢迎来到金榜探云手! DataGrip 公司简介 JetBrains 是一家专注于开发工具的软件公司,总部位于捷克。他们以提供强大的集成开发环境(IDE)而闻名,如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工…

哪个网站是免费的优化网站佛山厂商

原因:在做中控系统中遇到了一个给用户批量分配角色的问题,刚开始想到的是循环插入,但立马给否定了,循环操作数据库开发者的大忌啊,于是查找手册找到数据写入看到批量操作:addAll(),测试成功,以为…

网站建设与维护教学课件哪个网站是用php写的

K8S简单集群搭建 前提条件 windos11电脑,内存16g以上安装vmware虚拟机软件安装三个centos7虚拟机,分配硬盘40g,内存4g,CPU4核心网络均采用NAT模式(新建虚拟机默认的模式) centos7镜像下载:https://mirrors.tuna.tsi…

如何查询网站备案进度查询张店制作网站

检索对象 review_chain的目标是回答有关患者在医院就医体验的问题。到目前为止,已经将患者对医院的评论作为问题的上下文。虽然能回答少量问题,但它不具有很好的扩展性。此外,即使将所有评论放入模型的上下文中,也不能保证它使用…

网站建设1000字高防手表网站

1. 前言 本文是《【0264】深入分析relcache(relation descriptor cache)缓存初始化第2阶段》 的前传。在该文中,我们得知PG内核初始化relcache时,一共有三个阶段: 阶段(1) RelationCacheInitialize()阶段(2) RelationCacheInitializePhase2()阶段(3) RelationCache…

东莞企网站建设制作网站教程

prep7/pnum,label,key!在有限元模块图形中显示号码。Label=欲显示对象的名称,node节点,elem元素,kp点,line线,area面积,volu体积;key0为不显示号码(系统默认),&#xff1…

着力加强网站内容建设临沂网站制作定制

基于springboot实现高校党务平台管理系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点,而且Java是开源的,拥有全世界最大的开发者专业社群&#x…

苏州企业网站建设设计制作公司wordpress博客栏目设计

快速入口 👉向量数据库_大模型知识库_向量数据存储_向量数据检索- 腾讯云 (tencent.com) 文章目录 前言1. 向量数据库概念及原理1.1 向量数据库概念1.2 向量数据库核心原理1.3 向量数据库优缺点1.4 向量数据库与传统数据库的区别 2. 腾讯云向量数据库的基本特性及优…

珠海城乡建设网站怎么开网店呢

上一篇帖子【c】VSCode配置 c 环境(小白教程)_vscode配置c/c环境_StudyWinter的博客-CSDN博客 大火,但是依旧有很多小伙伴反应没有配好环境,今天打算重新写一个教程,希望对大家有帮助。 1 MinGW下载安装 在CSDN上传了…

59zwd一起做网站浙江百度推广开户

使用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。…

凉山州建设银行官方网站织梦免费源码

😀前言 本篇博文是关于MyBatis原生API&注解的使用,希望能够帮助到你😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您…

好上手的做海报网站好的网站具备

小米红米手机3有什么接口小米红米手机3有3.5mm耳机接口,microUSB充电和数据接口(采用5V/2A标准充电头)。那么小米红米手机3有什么接口?小米红米手机3采用金属机身,其背面由4166颗星星成菱形排列,设计灵感来自夜空中的繁星。当光线游走在圆点…

超简洁网站外贸网站推广策划

效果图 实现拖拽移动 首先我们给需要实现功能的元素加一个draggable"true"让元素能够被拖拽 先来认识两个搭配draggable属性一起使用的事件——ondragstart和ondragend,它们的定义分别为: ①. ondragstart 事件在用户开始拖动元素或选择的文…