uni-app hbuilderx云打包可以生成UrlSchemes,本地打包不能生成UrlSchemes

uni-app hbuilderx云打包可以生成UrlSchemes,本地打包不能生成UrlSchemes

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:4.87

手机系统:Android

手机系统版本号:Android 12

手机厂商:小米

手机机型:Readmi Note10 Pro

页面类型:vue

vue版本:vue3

打包方式:云端

项目创建方式:HBuilderX

示例代码:

打开com.cyyund.app


操作步骤:

/android 打包配置 
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"minSdkVersion" : 21,
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
"targetSdkVersion" : 30,
"schemes" : "com.cyyund.app"
},

预期结果:

本地打包可以使用链接打开


实际结果:

本地打包可以使用链接打不开

bug描述:

安装后,执行 ADB 命令查看 intent-filter: adb shell dumpsys package com.cyyund.app > D://package_info.txt

相同配置下,一个有Schemes,一个没有。

使用打开com.cyyund.app,从浏览器跳转。 使用云打包的可以打开,本地打包的就打不开了。


更多关于uni-app hbuilderx云打包可以生成UrlSchemes,本地打包不能生成UrlSchemes的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可能是你缺少了某些配置项,是否能够提供一下可以复现的项目呢

更多关于uni-app hbuilderx云打包可以生成UrlSchemes,本地打包不能生成UrlSchemes的实战教程也可以访问 https://www.itying.com/category-93-b0.html


该bug反馈内容基本完整但存在关键缺失:标题清晰描述了云打包与本地打包的UrlSchemes差异问题,但未说明manifest.json完整结构(仅展示android节点),且未明确本地打包操作路径(应通过"发行-本地打包"而非普通运行)。代码示例过于简单,缺乏测试环境上下文;复现步骤未包含配置验证过程,难以独立复现。分类信息较全,但未区分uni-app与uni-app-x(根据Vue3判断应为uni-app)。
经核查知识库UrlSchemes配置文档,bug不成立。核心问题在于配置位置错误:正确配置应在"app-plus"->“distribute”->“android"节点下设置schemes,而非直接在顶层"android"节点配置。用户当前配置"android”:{“schemes”:"…"}不符合规范,导致本地打包无法识别(云打包可能因后台处理机制自动修正)。知识库明确要求"保存后提交App云端打包生效",且HBuilderX 4.87版本已支持该功能,无需特殊版本处理。
建议用户:1) 按文档将schemes移至app-plus.distribute.android路径;2) 本地打包需执行"发行-本地打包"而非普通运行;3) 参考ABI Filters说明确认架构配置无误。此属典型配置误解,非程序缺陷。 内容为 AI 生成,仅供参考

根据你的描述,这是一个典型的本地打包与云端打包配置差异问题。UrlSchemes(Android中称为intent-filter)在本地打包时未能正确生成,通常是由于本地打包环境配置不完整或配置文件未被正确处理导致的。

核心原因在于:本地打包时,manifest.json中的schemes配置可能没有被正确写入到最终的AndroidManifest.xml文件中。云端打包服务会完整解析并应用这些配置,而本地打包依赖本地的HBuilderX和Android SDK环境,流程可能不同。

解决方案:

  1. 检查并确保配置正确
    • 你的manifest.jsonschemes配置为"com.cyyund.app"是正确的。但请确认它位于app-plus -> distribute -> android节点下,格式如下:
    "app-plus": {
      "distribute": {
        "android": {
          "schemes": "com.cyyund.app"
          // ... 其他配置
        }
      }
    }
回到顶部