e***@gmail.com
e***@gmail.com
  • 发布:55 分钟前
  • 更新:53 分钟前
  • 阅读:30

uni-push 2.0 荣耀离线推送:后台保存成功+重打包,但 APK 无 Honor Push SDK、Device Token 始终为空

分类:uni-app

您好,我们正在排查 uni-push 2.0 + 荣耀厂商离线推送问题。目前已经完成最终 APK 静态取证,问题已定位到"厂商 SDK/适配器未进入最终 APK"这一层,具体如下:

【项目】 AppID:UNIEDDE370 | 包名:cn.hbspace.merchant | uni-app + Vue3 | HBuilderX:5.24 | uni-push:2.0 | Android 正式云打包 | 当前版本 2.0.0
【DCloud 配置】 2026-09-03 00:26 荣耀厂商参数页面显示"保存成功"(荣耀 AppID/ClientID/ClientSecret 已填)→ 保存后重新正式云打包
【最终 APK 静态取证】 最新包 UNIEDDE370_0903003403.apk 拆包检查:com.hihonor.push.*:0 命中;HonorPushManager:0 命中;AndroidManifest 无荣耀 Push Service/Receiver/Provider;荣耀相关代码仅有 com.hihonor.id / com.hihonor.cloudservice.oaid(OAID,非 Push SDK);个推基础 SDK 存在 + sdk.honorpush.enable 配置串存在,但荣耀 Push SDK/适配器不存在
【设备验证】 CID 正常获取|App 在线时个推推送正常|杀 App 后无法收到系统通知|DCloud「状态查询」Device Token 始终为 "-"
【我们的判断】 非服务端发送问题(云函数 sendMessage 返回成功、在线已验证)。按官方文档,Device Token 是否存在本身是离线厂商推送是否集成成功的依据。

请协助确认:① uni-app+uni-push 2.0+荣耀的正式云打包,荣耀 Push SDK 是否应自动进入最终 APK?② HBuilderX 5.24 是否完整支持该荣耀通道?③ 后台"保存成功"后云打包读取实时配置还是快照?有无同步/缓存/延迟机制?④ 请核实 UNIEDDE370 云端保存的荣耀配置是否真正生效并同步到云打包?⑤ 有无开发者可查的"配置已同步"状态?⑥ 最新 APK 已证明无荣耀 SDK——是云端配置未同步 / 云打包未读取 / 版本适配异常 / 其他已知问题?⑦ 若云端确认生效,请提供"APK 不含荣耀 Push SDK"的官方排查方法。

我们可提供:保存成功截图、最新 APK、manifest.json、APK 静态分析结果。目前暂不修改服务端/云函数/业务代码(CID 获取/落库/云函数/在线推送均已验证正常),希望技术人员从"厂商配置→云打包构建产物"链路核查。

55 分钟前 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

首先感谢您的详细排查和取证,您的定位非常精准。基于您提供的 APK 静态分析结果(com.hihonor.push.* 0 命中、无荣耀 Push Service/Receiver/Provider),可以明确判定:荣耀厂商推送 SDK 及适配器确实未被打包进最终 APK

针对您的 7 个问题,结合 DCloud 官方机制及历史案例,答复如下:

① 荣耀 Push SDK 是否应自动进入最终 APK?
是的。在开发者中心正确配置荣耀厂商参数(AppID/ClientID/ClientSecret)并保存后,重新提交云端正式打包,云端构建系统会自动将荣耀 Push SDK 及个推荣耀适配器注入 APK。正常情况下,APK 中应存在 com.hihonor.push 相关类及 AndroidManifest 中的荣耀推送组件。

② HBuilderX 5.24 是否完整支持该荣耀通道?
支持。荣耀厂商推送支持自 HBuilderX 3.99 起加入(个推 SDK 3.3.3.0+)。您使用的 5.24 版本远高于此,版本本身支持荣耀通道。但需注意:历史上存在因项目编译器版本或缓存导致 SDK 未注入的案例(参考 ask社区案例)。

③ 后台"保存成功"后云打包读取实时配置还是快照?
云打包读取的是打包任务启动时刻的云端配置快照。虽然界面显示"保存成功",但存在以下可能:

  • 配置同步到云打包集群存在短暂延迟(通常秒级,极端情况下可能因缓存导致旧配置残留)
  • 若打包时云端配置服务异常,可能回退到默认配置(不含厂商 SDK)

④-⑤ 请核实配置是否生效?有无开发者可查的同步状态?
目前开发者中心没有提供"配置已同步到云打包"的显式状态标识。验证配置是否真正生效的唯一方式是:保存参数后,重新提交云端打包,并检查 APK 内容

您可以通过以下方式自助验证云端配置是否已正确下发:

  1. 保存配置后,等待 5-10 分钟再提交打包(排除同步延迟)
  2. 打包完成后,解压 APK 检查 AndroidManifest.xml 是否包含荣耀推送组件,或检查 assets/apps/__UNI__EDDE370/www/manifest.json 中是否包含 sdk.honorpush.appid 等字段

⑥ 最新 APK 已证明无荣耀 SDK,可能原因?
根据历史案例和您的取证,最可能的原因是:

  1. 云端配置同步异常:虽然界面显示保存成功,但配置未正确同步到云打包服务(缓存或同步失败)
  2. 项目编译器版本识别异常:云打包服务可能未正确识别项目所需的荣耀 SDK 依赖(类似历史上 CLI 版本过低导致的问题,但您使用的是 HBuilderX 云打包,理论上不应出现)
  3. 打包缓存:云打包服务可能缓存了旧的构建配置

⑦ 官方排查方法及建议
请按以下步骤操作:

  1. 清除缓存重打包(关键步骤):

    • 在 HBuilderX 中,点击菜单 "发行" -> "原生App-云打包"
    • 在打包界面,勾选"清除云打包缓存"(或尝试先修改一个无关紧要的配置如版本号,强制触发全量打包)
    • 重新提交打包
  2. 验证配置内容

    • 登录 DCloud 开发者中心
    • 进入 uni-push -> uni-push 2.0 -> 厂商推送设置 -> 荣耀
    • 确认荣耀 AppID、ClientID、ClientSecret 已正确填写且已勾选启用
    • 特别注意:荣耀平台要求包名与签名必须匹配,请确认荣耀后台配置的包名(cn.hbspace.merchant)和 SHA256 指纹与您的签名文件完全一致
  3. 检查 manifest.json
    确保 manifest.jsonapp-plus -> distribute -> sdkConfigs没有手动禁用荣耀推送的配置。

  4. 提供信息进一步核查
    若清除缓存后重打包仍无荣耀 SDK,请提供以下信息以便提交云端打包日志核查:

    • 打包时间(精确到分钟)
    • 打包类型(正式版/自定义基座)
    • 是否使用"安心打包"(建议尝试切换为"传统打包"测试,历史上有安心打包导致资源缺失的案例)
    • 完整的 manifest.json 文件内容
  5. 临时验证方案
    如急需验证荣耀推送功能,可尝试:

    • 新建一个空白 uni-app 项目,配置相同的荣耀参数并打包
    • 若新项目的 APK 包含荣耀 SDK,则确认为您当前项目的云端配置异常;若新项目也不包含,则可能是荣耀平台参数或证书配置问题

关于 Device Token 为空
这是荣耀 SDK 未集成的直接后果。个推 SDK 启动时会检测荣耀推送环境,若 SDK 不存在则无法获取荣耀 Token,导致 DCloud 状态查询显示为 "-"。

请先尝试清除云打包缓存后重新打包,这是解决此类"配置已保存但 SDK 未注入"问题的最有效手段。若问题依旧,请携带打包时间戳和 APK 分析结果,通过 ask 社区 提交工单,我们将为您调取云端构建日志进一步核查配置同步状态。

内容为 AI 生成,仅供参考

要回复问题请先登录注册