DCloud_App_Array
DCloud_App_Array
  • 发布:2018-09-20 21:23
  • 更新:2019-11-06 16:36
  • 阅读:9233

5+App升级iOS12系统后应用可能崩溃的解决方案

分类:HTML5+

部分开发者反馈app在iOS12上会崩溃,而同样代码在iOS12以下的手机正常。但也并非所有代码写法都会引发崩溃。
苹果最新的策略在iOS12及以后系统将不再维护UIWebview内核,都推荐改为WKWebview。
目前5+App、wap2app打包时,默认是UIWebview。uni-app默认是WKWebview。
所以5+App、wap2app的开发者,如果遇到iOS12的兼容问题,有如下方案:

1. 将app的iOS webview内核更改为WKWebview

在manifest.json的plus->kernel->ios节点中配置默认使用WKWebviwe内核:

//...  
"plus": {  
        "kernel": {  
            "ios": "WKWebview"  
        },  
        //...  
}

注意:

  1. 目前使用WKWebview内核不支持“启用js原生混淆”功能,云端打包iOS时不要勾选此项配置。
  2. wgt资源加密要注意,iOS一旦使用WKWebview也不支持解压加密的wgt资源。
  3. WKWebview里HTML5的存储如cookie、localstorage等和UIWebview不互通,应用升级后,手机端老的cookie等数据拿不到了。
  4. WKWebview不支持overrideresource。

2. 优化代码写法,避免崩溃

如果代码里有容易引发内存占用且没有回收的代码,比如不停运行的计时器,在UIWebview下更容易崩溃。
在js里不停大范围修改整体dom引发不停重布局,也容易崩溃。

如果配置为WKWebviw内核还存在闪退问题,请提供出现问题的ipa,并详细说明操作出现闪退的步骤。

另,由于一个三方库和iOS12的模拟器冲突了,HBuilde早期版本在真机运行到iOS12模拟器会无法启动,请升级到最新版。此问题不影响真机。

4 关注 分享
Trust 萧 skysowe 淘淘公子

要回复文章请先登录注册

q***@163.com

q***@163.com

改了manifest.json后重新离线打包的app在ios12上还是闪退
2018-09-25 15:24
DCloud_heavensoft

DCloud_heavensoft

回复 zk998 :
这是另一个bug,一个三方库和iOS12的模拟器冲突了,我们还在解决
2018-09-23 20:43
zk998

zk998

改过了,在iphone模拟器上还是闪退
2018-09-23 18:53