DCloud_App_Array
DCloud_App_Array
  • 发布:2019-02-26 17:09
  • 更新:2024-12-02 18:19
  • 阅读:13968097

uni-app运行环境版本和编译器版本不一致的问题

分类:uni-app

HBuilderX1.7.0及以上版本uni-app添加了运行环境版本和编译环境版本的校验机制,当两个版本不一致时会弹出以下提示:

  • “手机端SDK版本”:是指5+Runtime的版本号。云打包提交云端打包时确定的,也就是说生成apk/ipa之后,APP运行环境就不会改变了。离线打包时是你下载的sdk的版本。只有默认真机运行基座、云打包机的引擎是和HBuilderX升级而自动升级的。如果你使用了自定义基座、sdk离线打包,需要手动升级,或者重新用新版制作自定义基座,或者下载最新版sdk。
  • “HBuilderX版本”:如果项目是HBuilderX创建的,则是HBuilderX的版本号,更新HBuilderX会改变;如果是cli创建的项目,即根目录是package.json,那么编译环境版本号是创建cli时生成的,或者上一次执行npm update生成的。不管HBuilderX如何升级,cli项目的编译器并不会跟随HBuilderX升级而升级,需手动升级。

什么时候会出现这种问题?

  • 情况1:HBuilderX版本很老,或cli编译器一直没升级,而云打包服务器已经升级,此时编译环境版本低,而运行环境版本高,就会报错。
  • 情况2:使用老版HBuilderX打包了App后,后来使用新版HBuilderX或新版cli制作了wgt升级包。此时编译环境会高于运行环境,也会报错。
  • 情况3:使用了cli或自定义基座或本地打包,虽然HBuilderX升级了,但这些配套并没有手动升级,也是报错。
  • 情况4:如果HBuilderX版本高于SDK版本,有可能是HBuilderX在升级时出现问题,手机端基座没有升级成功。如果是这种情况,在插件管理里卸载“真机运行插件”,然后重新安装这个插件。

出现问题该怎么办?

  1. 比较简单的就是全部升级,保持HBuilderX、自定义基座、cli项目编译器都是最新版。
  2. wgt升级时遇到这个问题,首先你可以自测,看老的运行引擎和新版编译器编的wgt是否搭配,如果测试有问题,那不能使用wgt升级,请使用整包升级。如果测试正常,可以在manifest.json文件的源码视图中配置忽略这个提醒,在“app-plus”->"compatible" 节点下添加配置 方式如下:
    HBuilderX1.9.0及以上版本新增以下配置避免弹出提示框
    //...  
    "app-plus": {  
        "compatible": {  
            "ignoreVersion": true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持  
        },  
    //....  
    },  
    //...

    以下方法可针对指定版本避免弹出提示框。

    //...  
    "app-plus": {  
        "compatible": {  
            "runtimeVersion": "1.7.0", //根据实际情况填写  
            "compilerVersion": "1.7.1" //根据实际情况填写  
        },  
    //....  
    },  
    //...
    • "runtimeVersion"字段值表示应用兼容的uni-app运行环境版本号,可以配置多个版本号(使用英文字符,分隔)
    • "compilerVersion"字段值表示编译环境版本号,通常配置当前HBuilderX的版本号或cli编译器版本即可(不可以配置多个)

建议:尽量使用相同的HBuilderX版本制作移动App资源升级包

本地离线打包请及时更新到与HBuilderX版本相对应的App离线打包SDK

cli项目请及时npm update 更新到最新cli,如需指定cli版请参考:修改依赖为指定版本

注意
平台并不知道使用者是正常用户还是开发者。
但开发者在发布给最终用户之前,请务必先自行测试好。
目前出这个问题的,大多是因为制作wgt升级包造成的。
请使用wgt升级的开发者的,务必在测试环境上先测试好了再发布wgt。
在HBuilderX 1.9版里,已经在制作wgt时强调提示了这个信息。

34 关注 分享
Trust DCloud_UNI_HT 萌龙 DCloud_HB_WDL 5***@qq.com ZFPartric 一杯茶 独家记忆112 强Love丹 刘桂珍 世博 阳一 许永斌 诱惑 土哥 王杰打豆豆 小黄敏 Storm1171 1***@qq.com 实力青年 Adenaka 徐必庆 p***@163.com 王虎林 8***@qq.com 1***@qq.com a***@gmail.com 付宝永 r***@gmail.com 董硕 1***@163.com 6***@qq.com 1***@qq.com 1***@qq.com

要回复文章请先登录注册

lps405

lps405

每次更新的时候都会出问题,我通过自动更新把HX升级到最新版,然后提示我的基座版本老,然后把基座删除,重新调试应用 自动安装后还是提示版本低
2019-04-28 16:32
DCloud_App_Array

DCloud_App_Array (作者)

回复 半晴雨滴 :
如果使用自定义基座,请重新提交打包生成新的自定义基座。
如果使用的是HBuilderX自带的基座,可能是升级不成功,尝试重新下载完整新版本HBuilderX。
2019-04-27 18:55
半晴雨滴

半晴雨滴

怎么升级运行环境版本?现在提示我uni-app运行环境(1.8.2)和 应用编译环境(1.9.3)不一致。可是我HbuilderX是最新的1.9.3,项目是原先用1.8.X创建的。不应该是自动升级运行环境吗?怎么还会报错提示?
2019-04-27 09:29
DCloud_App_Array

DCloud_App_Array (作者)

回复 6***@qq.com :
此应用仅查到4.18号一次云端打包记录,此次打包中没有配置compatible信息
2019-04-22 12:31
6***@qq.com

6***@qq.com

{
"name" : "hhsc",
"appid" : "__UNI__A988130",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
"app-plus" : {
"compatible" : {
"ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持
},
/* 5+App特有相关 */
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"modules" : {
"Push" : {},
"OAuth" : {},
"Payment" : {}
},
/* 模块配置 */
"distribute" : {
/* 应用发布信息 */
"android" : {
/* android打包配置 */
"permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
"ios" : {},
/* ios打包配置 */
"sdkConfigs" : {
"push" : {},
"share" : {},
"maps" : {},
"oauth" : {},
"payment" : {
"appleiap" : {}
}
}
}
},
/* SDK配置 */
"quickapp" : {},
/* 快应用特有相关 */
"mp-weixin" : {
/* 小程序特有相关 */
"appid" : "",
"setting" : {
"urlCheck" : false
}
},
"mp-toutiao" : {
"setting" : {
"urlCheck" : true
}
}
}去掉了外层的“app-plus”打包完成之后还是提示版本不一致啊
2019-04-22 09:51
DCloud_App_Array

DCloud_App_Array (作者)

回复 6***@qq.com :
从后台日志看你配置的compatible父节点多了一层"app-plus",需要删除一层
2019-04-20 15:58
6***@qq.com

6***@qq.com

回复 DCloud_App_Array :
HBuilderX版本是1.9.2 ;AppID : _UNI_A988130
2019-04-19 11:49
DCloud_App_Array

DCloud_App_Array (作者)

回复 6***@qq.com :
确认更新HBuilderX为1.9.*版本
提供下应用的appid(manifest.json中的id字段值)
2019-04-19 11:38
6***@qq.com

6***@qq.com

按照上面说的加上了"ignoreVersion": true 也无效啊,还是提示
2019-04-18 21:01
薄荷味的雪

薄荷味的雪

每次升级了HB版本,能不能把离线打包的SDK也同步更新啊。
2019-04-18 10:51