当前位置: 首页 > news >正文

ios 混合开发应用白屏问题

一、问题场景

项目业务中某个前端页面中使用了多个echart 组件来显示历史数据, 在反复切换到这个页面后,会出现白屏问题。

二、问题分析

0x116000ab0 - GPUProcessProxy::didClose:

0x116000ab0 - GPUProcessProxy::gpuProcessExited: reason=Crash

0x1150180c0 - [PID=3342] WebProcessProxy::gpuProcessExited: reason=Crash

Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 "((target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.rendering AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.networking AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.webcontent))" UserInfo={NSLocalizedFailureReason=((target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.rendering AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.networking AND target is not running or doesn't have entitlement com.apple.developer.web-browser-engine.webcontent))}>

0x1150243c0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'GPUProcess Background Assertion' for process with PID=3343, error: (null)

Failed to terminate process: Error Domain=com.apple.extensionKit.errorDomain Code=18 "(null)" UserInfo={NSUnderlyingError=0x30128cb40 {Error Domain=RBSRequestErrorDomain Code=3 "No such process found" UserInfo={NSLocalizedFailureReason=No such process found}}}

Failed to terminate process: Error Domain=com.apple.extensionKit.errorDomain Code=18 "(null)" UserInfo={NSUnderlyingError=0x30128ec40 {Error Domain=RBSRequestErrorDomain Code=3 "No such process found" UserInfo={NSLocalizedFailureReason=No such process found}}}

在切换页面的过程中看到如上日志,感觉是跟图形渲染相关的进程已经出问题了,

在出现白屏的时候,是如下日志:

0x116000ab0 - GPUProcessProxy::didClose:

0x116000ab0 - GPUProcessProxy::gpuProcessExited: reason=Crash

0x1150180c0 - [PID=3342] WebProcessProxy::gpuProcessExited: reason=Crash

0x104d70408 - WebProcessPool::gpuProcessDidExit: GPU Process has crashed more than 2 times in the last 30 seconds, terminating all WebProcesses

0x104d70408 - WebProcessPool::terminateAllWebContentProcesses

Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>

0x1150180c0 - [PID=0] WebProcessProxy::didClose: (web process 0 crash)

0x1150180c0 - [PID=0] WebProcessProxy::processDidTerminateOrFailedToLaunch: reason=Crash

0x1150243c0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'GPUProcess Background Assertion' for process with PID=3361, error: (null)

Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>

0x115024600 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'XPCConnectionTerminationWatchdog' for process with PID=0, error: (null)

0x104d6c018 - [pageProxyID=10, webPageID=11, PID=0] WebPageProxy::processDidTerminate: (pid 0), reason=Crash

0x104d6c018 - [pageProxyID=10, webPageID=11, PID=0] WebPageProxy::dispatchProcessDidTerminate: reason=Crash

webViewWebContentProcessDidTerminate

从日志中可以看出webview 已经调用 webViewWebContentProcessDidTerminate 这个方法,进程都终止了。

在网上搜索了各种白屏问题,例如:

深入理解WKWebView白屏_webviewwebcontentprocessdidterminate-CSDN博客

App WebView白屏检测及解决总结,包括Android 和 iOS_ios webview加载白屏-CSDN博客

感觉最终的处理方式也只有reload 了

//进程被终止时调用

- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView{

    [webView reload];

    NSLog(@"webViewWebContentProcessDidTerminate");

}

不知道是不是苹果Safari 和 Chrome 里面的机制有差别,在电脑上运行同样的H5页面切换,明显感觉到Safari 要慢一下,感觉卡一些。

相关文章:

ios 混合开发应用白屏问题

一、问题场景 项目业务中某个前端页面中使用了多个echart 组件来显示历史数据&#xff0c; 在反复切换到这个页面后&#xff0c;会出现白屏问题。 二、问题分析 0x116000ab0 - GPUProcessProxy::didClose: 0x116000ab0 - GPUProcessProxy::gpuProcessExited: reasonCrash 0x11…...

对分布式系统的理解以及redis的分布式实现

对分布式系统有哪些了解? 分布式系统是由多个独立的计算节点(通常是计算机或服务器)组成的系统,这些节点通过网络相互通信和协作,共同完成任务。分布式系统的设计旨在提供可扩展性、容错性和高可用性,适用于大规模的数据处理和服务场景。 1. 分布式系统的核心特点 分布…...

VS项目,在生成的时候自动修改版本号

demo示例&#xff1a;https://gitee.com/chenheze90/L28_AutoVSversion 可通过下载demo运行即可。 原理&#xff1a;通过csproject项目文件中的Target标签&#xff0c;实现在项目编译之前对项目版本号进行修改&#xff0c;避免手动修改&#xff1b; 1.基础版 效果图如下 部…...

【蓝桥杯】43699-四平方和

四平方和 题目描述 四平方和定理&#xff0c;又称为拉格朗日定理&#xff1a; 每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去&#xff0c;就正好可以表示为 4 个数的平方和。 比如&#xff1a; 502021222 712121222; 对于一个给定的正整数&#xff0c;可…...

我的“双胞同体”发布模式的描述与展望

当被“激情”晕染&#xff0c;重创标题、摘要探索“吸睛”。 (笔记模板由python脚本于2024年12月19日 15:23:44创建&#xff0c;本篇笔记适合喜欢编撰csdn博客的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免…...

flask_socketio 以继承 Namespace方式实现一个网页聊天应用

点击进入上一篇&#xff0c;可作为参考 实验环境 python 用的是3.11.11 其他环境可以通过这种方式一键安装&#xff1a; pip install flask3.1.0 Flask-SocketIO5.4.1 gevent-websocket0.10.1 -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pip list 详情如下&am…...

go mod tidy 命令

go mod tidy 是 Go 语言的命令&#xff0c;用于清理和更新 go.mod 和 go.sum 文件。它主要有以下功能&#xff1a; 移除未使用的依赖项&#xff1a;从 go.mod 文件中删除那些在代码中不再使用的依赖项。 添加缺失的依赖项&#xff1a;添加代码中使用但尚未记录在 go.mod 文件中…...

(11)YOLOv9算法基本原理

一、YOLOv9 的结构 YOLOv9 引入了可编程梯度信息&#xff08;PGI&#xff09;&#xff0c;以及基于梯度路径规划的新型轻量级网络架构&#xff0c;为目标检测领域带来了突破性的成果。 Yolov9 网络模型主要由BackBone&#xff08;主干网络&#xff09;、Neck&#xff08;颈层&…...

python学opencv|读取图像(十七)认识alpha通道

【1】引言 前序学习进程中&#xff0c;我们已经掌握了RGB和HSV图像的通道拆分和合并&#xff0c;获得了很多意想不到的效果&#xff0c;相关链接包括且不限于&#xff1a; python学opencv|读取图像&#xff08;十二&#xff09;BGR图像转HSV图像-CSDN博客 python学opencv|读…...

中小学教室多媒体电脑安全登录解决方案

中小学教室多媒体电脑面临学生随意登录的问题&#xff0c;主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析&#xff1a; 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用&#xff0c;增加设备损坏的风险。不当…...

Redis篇之Redis高可用模式参数调优,提高Redis性能

1. Redis高可用模式核心 Redis高可用模式的核心是使用主从复制和自动故障转移机制来确保系统在某些节点发生故障时仍然可以正常工作。 常用的高可用架构包括Redis Sentinel模式和Redis Cluster模式&#xff0c;其中Sentinel模式是为了提供高可用性而专门设计的解决方案。 在Re…...

linux-----进程execl簇函数

execl函数族概述 在Linux中&#xff0c;execl函数族用于在一个进程中加载并执行一个新的程序&#xff0c;它会替换当前进程的地址空间&#xff08;代码段、数据段、堆和栈等&#xff09;。这个函数族包括execl、execlp、execle、execv、execvp和execvpe&#xff0c;它们的主要功…...

Vue + ECharts 实现山东地图展示与交互

这篇文章中&#xff0c;我将逐步介绍如何使用 Vue 和 ECharts 实现一个互动式的地图展示组件&#xff0c;其中支持返回上一层地图、点击查看不同城市的详细信息&#xff0c;以及根据数据动态展示不同的统计信息。 效果图&#xff1a;玩转山东地图&#xff1a;用Echarts打造交互…...

【Verilog】UDP用户原语

User-defined primitives 概述基本语法组合逻辑的UDP时序逻辑的UDPUDP 符号表 Verilog HDL&#xff08;简称 Verilog &#xff09;是一种硬件描述语言&#xff0c;用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog 不仅定义了语法&…...

问题小记-达梦数据库报错“字符串转换出错”处理

最近遇到一个达梦数据库报错“-6111: 字符串转换出错”的问题&#xff0c;这个问题主要是涉及到一条sql语句的执行&#xff0c;在此分享下这个报错的处理过程。 问题表现为&#xff1a;一样的表结构和数据&#xff0c;执行相同的SQL&#xff0c;在Oracle数据库中执行正常&…...

MyBatis入门的详细应用实例

目录 MyBatis第一章&#xff1a;代理Dao方式的CRUD操作1. 代理Dao方式的增删改查 第二章&#xff1a;MyBatis参数详解1. parameterType2. resultType 第三章&#xff1a;SqlMapConfig.xml配置文件1. 定义properties标签的方式管理数据库的信息2. 类型别名定义 MyBatis 第一章&…...

Sequelize ORM sql 语句工具

Sequelize ORM sql 语句工具 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖&#xff08;安装 mysql2&#xff09; npm i sequelize mysql2初始化项目 sequelize init熟悉初始化项目后…...

增强LabVIEW与PLC通信稳定性

在工业自动化系统中&#xff0c;上位机与PLC之间的通信稳定性至关重要&#xff0c;尤其是在数据采集和控制任务的实时性要求较高的场景中。LabVIEW作为常用的上位机开发平台&#xff0c;通过合理优化通信协议、硬件接口、数据传输方式以及系统容错机制&#xff0c;可以大大提升…...

UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏

UDP系统控制器(ShuiYX) 帮助文档 概述 本程序设计用于通过UDP协议接收指令来远程控制计算机的音量、执行特定命令和其他功能。为了确保程序正常工作&#xff0c;请确认防火墙和网络设置允许UDP通信&#xff0c;并且程序启动后会最小化到托盘图标。 命令格式及说明 音量控制…...

NK细胞杀伐功能如何实现?

在人体的免疫系统中&#xff0c;自然杀伐细胞&#xff08;Natural Killer Cells&#xff0c;简称NK细胞&#xff09;是一类完全自然的免疫激活力量。它们为人体提供了快速反应能力&#xff0c;不依赖类元的特定识别力&#xff0c;但能直接寻找和毁灭毒病感染细胞和肿瘤细胞。那…...

拓扑排序别再死记硬背了!用邻接矩阵手搓一个(附C++/C语言单文件实现)

拓扑排序的工程化实现&#xff1a;从邻接矩阵到零依赖代码实战 第一次接触拓扑排序时&#xff0c;我盯着教科书上的算法描述看了半天——"选择一个入度为0的顶点并输出"、"从图中删除该顶点和所有以它为起点的有向边"——这些抽象的描述让我困惑不已。直到…...

4个革新性步骤:NHSE动物森友会存档编辑器完全指南

4个革新性步骤&#xff1a;NHSE动物森友会存档编辑器完全指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE NHSE&#xff08;动物森友会存档编辑器&#xff09;作为一款开源免费工具&#xff0c…...

告别付费IP!手把手教你用ZCU102 PS端DP接口点亮显示器(附参数调试心得)

解锁ZCU102 PS端DisplayPort潜力&#xff1a;零成本实现高效显示输出的实战指南 在嵌入式视觉系统开发中&#xff0c;显示输出往往是项目落地的最后一道关卡。当我在多个Zynq UltraScale MPSoC项目中反复遭遇HDMI IP核的授权困扰和PL端实现的复杂性后&#xff0c;意外发现PS端集…...

嵌入式图像处理实战:中值滤波 vs 均值滤波在STM32上的性能对比(附代码)

嵌入式图像处理实战&#xff1a;中值滤波 vs 均值滤波在STM32上的性能对比&#xff08;附代码&#xff09; 在机器人视觉或工业检测系统中&#xff0c;一个突如其来的像素噪点可能导致整个识别算法崩溃。我曾亲眼见证过某产线机械臂因图像传感器受到电磁干扰&#xff0c;将正常…...

OpenCode应用案例:搭建企业内部代码审查助手,提升开发效率

OpenCode应用案例&#xff1a;搭建企业内部代码审查助手&#xff0c;提升开发效率 1. 项目背景与痛点分析 在软件开发团队中&#xff0c;代码审查是保证代码质量的关键环节。然而传统人工审查方式面临诸多挑战&#xff1a; 时间成本高&#xff1a;资深工程师需要花费大量时间…...

Qwen3-VL:30B开源可部署优势展示:无需License、无调用限制、全链路私有化保障

Qwen3-VL:30B开源可部署优势展示&#xff1a;无需License、无调用限制、全链路私有化保障 1. 为什么你需要一个私有化的多模态大模型&#xff1f; 想象一下这个场景&#xff1a;你的团队需要处理大量产品图片&#xff0c;并生成对应的营销文案。你打开某个在线AI工具&#xf…...

不会画画也能创作!梦幻动漫魔法工坊新手入门全攻略

不会画画也能创作&#xff01;梦幻动漫魔法工坊新手入门全攻略 1. 为什么你需要这个工具 你是否曾经有过这样的经历&#xff1a;脑海中浮现出一个绝妙的动漫角色形象&#xff0c;却因为不会画画而无法将它呈现出来&#xff1f;或者想为社交媒体创作独特的二次元头像&#xff…...

从synchronized到CompletableFuture:Java多线程完全进阶指南

在当今多核处理器普及的计算时代&#xff0c;充分利用硬件资源成为提升程序性能的关键。Java作为企业级应用的主流语言&#xff0c;其内置的多线程支持让并发编程变得触手可及。然而&#xff0c;多线程编程如同一把双刃剑——用得好&#xff0c;能成倍提升系统吞吐量&#xff1…...

S2-Pro自动化运维脚本生成:应对Linux服务器常见管理任务

S2-Pro自动化运维脚本生成&#xff1a;应对Linux服务器常见管理任务 1. 运维工程师的新助手 最近遇到个挺有意思的事。我们团队新来的运维小哥&#xff0c;处理服务器问题时总要先翻半天文档&#xff0c;再到处搜脚本模板。看着他手忙脚乱的样子&#xff0c;我突然想起自己刚…...

YOLOv5后处理升级指南:一文搞懂NMS、Soft-NMS和CIoU-NMS怎么选

YOLOv5后处理优化实战&#xff1a;NMS算法选型与性能调优指南 当你的YOLOv5模型完成训练后&#xff0c;最后一个关键环节是后处理优化——这直接决定了检测框的质量和最终性能表现。面对琳琅满目的NMS变种和IoU计算方法&#xff0c;工程师们常常陷入选择困难&#xff1a;Soft-N…...