老木匠
老木匠
  • 发布:2019-07-14 11:09
  • 更新:2019-07-16 16:21
  • 阅读:1488

【报Bug】升级2.1.0之后IOS出现闪退问题 自己摸索解决后,遗留的几个问题请管理员帮忙

分类:HBuilderX

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

[步骤]
一直在2.0.1版本中开发,7月13日晚与往常一样打开HB,提示升级更新,当然这个是必须要做的(跟着党中央走), 升级完成后自述文件很长,我大概的阅读了一遍,觉得这个2.1的版本不错,插上手机开始干, 谁知道恶梦开始了

编译器从2.0.1换成了2.1.0,  手机基座重新安装,确认信任之后,

苹果IOS12下,闪退, 重启了电脑和手机  问题依然. 

换成安卓手机,   一切正常
换成小程序IDE   一切正常


群里问了一下管理员,  然后尝试着用2.1.0新建一个Hello uni-app, 到苹果端调试,正常


这时候我开始怀疑我的代码问题,但代码在安卓和小程序上又正常, 冷静下来之后, 开始在manifest文件上动脑.

从Hello uni-app的新建文件中, 取出manifest复制到我的项目下, 把内容修改成我需要的

苹果端尽然不闪了, 当时开心得.......  

仔细比对发现, IOS端需要自定义组件模式,需要加: "usingComponents" : true,

但好景不长

再测试下去,发现Tabbar下的页面,onload()无效, 这样导致有很多页面无法正常加载

不断的对比着manifest的内容和格式,不断的尝试着

[结果]

还是没搞定 [哭]

终极结果是: APP在非自定义组件模式下编译   闪退
       APP在自定义组件模式下   正常, 但Tabbar的子页组件拿不到onLoad


                安卓  在非自定义组件模式下     正常显示   正常拿到ONLOAD  
                安卓  在自定义组件模式下    正常显示, 但子页组件拿不到onload  

                微信小程序   同安卓   

最后只能用自定义组件模式 , 把onload 全改为Mounted

[期望]

是不是我哪里设置出问题了,tabbar的页面拿不到onload, 但安卓和小程序中可以拿

能像2.0.1那样就可以, 虽然我可以返回上一个版本继续开发,  但是在云打包的时候, 打包机是一直在更新着啊

我用2.0.1去开发, 到时候云打包用的是2.1的, 那不是哭死

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

HBX 2.01 升级至2.1.0

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

APP

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

HBuilderX

[编译模式是老模板模式还是新的自定义组件模式?]

自定义组件模式

App运行环境说明

[Android版本号]

[iOS版本号]

ISO12

[手机型号]

6S PLUS和XS MAX均试了

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

2019-07-14 11:09 负责人:无 分享
已邀请:
老木匠

老木匠 (作者) - 老鸟开发

自我总结一下:

经过多次尝试, 发现问题出现在是否自定义组件方式编译, 新版的HBX应该是放弃了老版的非自定义组件模式, 所以新开发的项目一定要换成自定义组件模式进行编译开发。

子组件里有些不生效,是因为语法的不支持,具体可以查看官网: https://ask.dcloud.net.cn/article/35843 
自定义和非自定义的差异, 里面说得很详细

关于onLoad这个, 我也是看下面的评论才得到的结论

此问题已解决

  • 守护

    我是H5+App 不是uni-app?也要设置usingComponents为false吗?

    2019-07-14 15:30

1***@qq.com

1***@qq.com - hnfly

我也出现了这个问题了. 用这个方法解决了, 希望能帮你还在坑里的小伙伴. 附上链接
https://ask.dcloud.net.cn/article/35042

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

"app-plus": {    
        "kernel": {    
            "ios": "WKWebview"    
        },    
        //...    
} 
老木匠

老木匠 (作者) - 老鸟开发

谢谢你, 我现在为自定义组件了, 把非自定义的扔了 [哭笑不得].....

  • 1***@qq.com

    "usingComponents":true 是这样配置就可以了吗

    2019-07-16 16:43

该问题目前已经被锁定, 无法添加新回复