q***@kickbazar.com
q***@kickbazar.com
  • 发布:2026-07-30 11:41
  • 更新:2026-07-30 11:42
  • 阅读:17

【Android 云打包】当前项目正式包请求报错 protocol TLSv1 is not supported,栈落在 DCloudTrustManager / DCWXHttpAdapter

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 26.5.1

HBuilderX类型: 正式

HBuilderX版本号: 5.15

手机系统: Android

手机系统版本号: Android 15

手机厂商: 荣耀

手机机型: 荣耀300

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

但同一项目的其他打包方式和对照项目表现如下:

  • 自定义基座:正常
  • 离线打包:正常
  • 最小新项目(请求同一 API)云打包:正常
  • 当前项目云打包正式包:异常

因此怀疑不是接口本身问题,也不是通用云打包问题,而是当前项目在云打包产物中触发了 DCloud Runtime 的某条特定原生 HTTPS 请求链路。

基础信息:

  • 项目类型:uni-app + Vue3 + TS + Vite
  • 打包方式:Android 云打包正式包
  • AppID:UNIDBC4538
  • Android 包名:uni.app.UNIDBC4538
  • HBuilderX 版本:请填写
  • 手机型号:请填写
  • Android 版本:请填写

已做排查:

  1. 同一 API 放到最小新项目中做 Android 云打包测试,正常
  2. 当前项目自定义基座测试,正常
  3. 当前项目离线打包测试,正常
  4. 已临时禁用 sobot-chat-client 智齿插件后再次云打包,问题仍存在
  5. 当前 manifest 中没有复杂额外原生插件,主要为 Camera 和 oauth.google
  6. 已通过 adb logcat 抓到原生错误堆栈

adb logcat 关键日志:
07-30 11:25:17.948 22628 24507 W System.err: java.lang.IllegalArgumentException: protocol TLSv1 is not supported
07-30 11:25:17.948 22628 24507 W System.err: at com.android.org.conscrypt.NativeCrypto.checkEnabledProtocols(NativeCrypto.java:1499)
07-30 11:25:17.948 22628 24507 W System.err: at com.android.org.conscrypt.SSLParametersImpl.<init>(SSLParametersImpl.java:192)
07-30 11:25:17.948 22628 24507 W System.err: at com.android.org.conscrypt.OpenSSLContextImpl.engineInit(OpenSSLContextImpl.java:124)
07-30 11:25:17.948 22628 24507 W System.err: at javax.net.ssl.SSLContext.init(SSLContext.java:326)

另一次抓到的更完整堆栈还包含:

  • io.dcloud.common.adapter.util.DCloudTrustManager.getSSLSocketFactory
  • io.dcloud.feature.weex.adapter.DCWXHttpAdapter.getOKRequest

从日志看,异常发生在 DCloud Runtime 原生 HTTPS 初始化阶段,而不是业务 JS 层主动指定 TLSv1。
因为:

  • 当前项目云包异常
  • 最小云项目正常
  • 自定义基座正常
  • 离线打包正常

所以怀疑是“当前项目在云打包正式包中触发了某条 DCloud 原生请求兼容路径”,导致使用了 TLSv1 并被 Android 系统拒绝。

希望协助排查:

  1. 请帮忙查看该 AppID 对应云打包产物是否存在运行时差异
  2. 是否当前云打包 runtime 在该项目上触发了旧 TLS 协议初始化
  3. 是否有已知问题、修复版本或临时规避方案

如果需要,我可以继续补充:

  • 更完整的 adb 日志
  • manifest.json 配置
  • 云打包与离线打包对照结果
  • 可复现安装包

预期结果:

正常访问app

实际结果:

进入app报request:fail abortstatusCode:-1 protocol TLSv1 is not supported,页面白屏

bug描述:

当前 uni-app 项目在 Android 云打包正式包中,请求接口时会报错:

request:fail abortstatusCode:-1 protocol TLSv1 is not supported

2026-07-30 11:41 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的反馈。这是一个非常高质量的 Bug 报告,排查思路清晰,对照实验详实,原生堆栈抓取准确,对定位问题非常有帮助。

以下是官方视角的评审与分析:

1. Bug 反馈内容完整性评审

  • BUG 描述:非常详细且逻辑清晰。您通过自定义基座、离线打包、最小新项目云打包的交叉对比,有效排除了接口本身和通用云打包环境的问题,准确定位到“当前项目云打包正式包”这一特定条件。原生 adb logcat 堆栈准确指向了 DCloudTrustManagerDCWXHttpAdapter,为排查提供了明确方向。
  • 代码示例:此类运行时底层网络链路问题通常不涉及具体业务代码,您提供的基础信息、复现步骤和日志堆栈已足以替代代码示例。
  • 复现步骤:描述清晰。但由于该问题涉及特定项目在云打包环境下的产物差异,官方在复现时可能需要您提供完整的可复现工程(或剥离敏感信息后的工程),以确保云打包机能够打出相同的异常产物。
  • 预期结果与实际结果:合理且明确,符合实际故障表现。
  • 分类信息:完整。包含了 Mac 环境信息、HBuilderX 5.15 正式版、Android 15、荣耀 300、Vue3、uni-app 等关键版本与平台信息。

2. Bug 成立性分析

结合知识库与社区历史反馈,该 Bug 现象成立,且属于已知的 Android 高版本兼容性问题。

在 ask 社区中,有多位开发者反馈了相同报错:protocol TLSv1 is not supported

官方在此前的 tlsv1 is not supported【报Bug】 回复中说明:uni.request 在 Android 平台基于 OkHttp 库实现,由于 TLSv1 存在已知安全漏洞,较高版本的 OkHttp 已不再支持。Android 15/16 等高版本系统对 TLS 协议的安全策略要求更为严格,当 Runtime 内部某些旧的请求链路(如您堆栈中提到的 DCloudTrustManager.getSSLSocketFactory)尝试初始化包含 TLSv1 的协议时,会被 Android 系统直接拦截并抛出 IllegalArgumentException

3. 临时规避方案

在官方 Runtime 彻底修复该底层链路之前,您可以尝试以下临时规避方案:

社区开发者在 红米K80 Android 16 必现问题 的回复中提到:在 uni.request 中显式添加 sslVerify: true 参数后,请求可以恢复正常。

uni.request({  
    url: 'https://your-api-domain.com/endpoint',  
    sslVerify: true, // 尝试添加此参数  
    success: (res) => {  
        console.log('请求成功', res);  
    },  
    fail: (err) => {  
        console.log('请求失败', err);  
    }  
});

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
推测显式传入 sslVerify 参数可能会改变底层 DCWXHttpAdapter 的初始化路径,从而绕过触发 TLSv1 的异常代码块。建议您在项目中全局拦截或修改 uni.request 的调用,统一添加该参数进行验证。

4. 进一步处理建议

由于该问题仅在“当前项目云打包正式包”中出现,而最小新项目云打包正常,说明项目中的某些特定配置或插件组合触发了该兼容路径。为了协助官方更精准地定位云打包产物差异:

  1. 请您尝试上述 sslVerify: true 的临时规避方案,确认是否能够恢复访问。
  2. 如果问题依然存在,建议您在 ask 社区 发帖反馈,并提供可复现的安装包或剥离后的测试工程,以便官方排查云打包机在处理该项目时生成的运行时差异。
内容为 AI 生成,仅供参考

要回复问题请先登录注册