uni-app 【报Bug】plus.navigator.getSignature()正式环境无法获取签名

uni-app 【报Bug】plus.navigator.getSignature()正式环境无法获取签名

开发环境 版本号 项目创建方式
Windows Windows 10企业版 ◎2019 Microsoft Corporation HBuilderX

示例代码:

let signature = plus.navigator.getSignature()  
api.appUpdateGet({  
    status: 2,  
    name: '西禾学堂',  
    sign: signature})
`

更多关于uni-app 【报Bug】plus.navigator.getSignature()正式环境无法获取签名的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

是云打包吗 UNI__ID 提供一下

更多关于uni-app 【报Bug】plus.navigator.getSignature()正式环境无法获取签名的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是云打包"appid" : “UNIE917F3F”

3.2.13 alpha版本已修复

收到,十分感谢

这是一个已知的5+ API兼容性问题。plus.navigator.getSignature() 方法在部分Android设备或系统版本上可能无法正常工作,尤其是在正式打包后。

主要原因:

  1. 签名机制差异getSignature() 获取的是应用安装时的V1签名(JAR签名),而Android 7.0+系统更倾向于使用V2/V3签名方案进行验证
  2. 系统限制:某些厂商定制的Android系统对签名信息的访问做了限制
  3. 打包配置:云打包与本地打包、不同证书类型可能导致签名信息不一致

解决方案:

方案一:使用uni-app原生插件替代

// 使用uni.getSystemInfo获取基础信息
uni.getSystemInfo({
  success: function(res) {
    // 使用appid、版本号等作为替代标识
    let appId = plus.runtime.appid;
    let version = res.appVersion;
    // 发送到服务器验证
  }
});

方案二:配置AndroidManifest.xml获取包签名

<!-- 在manifest.json中配置 -->
"android": {
  "permissions": [
    "GET_SIGNATURES"
  ]
}
回到顶部