You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Azure MSAL的应用从Play商店下载后客户端初始化失败报错

解决Azure MSAL集成应用上传Play商店后初始化失败问题

核心问题定位

本地签名APK正常但Play商店版本报错,本质是Play应用签名机制替换了你的应用签名密钥,导致Azure AD配置的签名哈希与实际应用签名不匹配,触发客户端初始化失败。

分步解决方案

  • 第一步:获取Play应用签名证书的正确哈希值

    1. 登录Play控制台,进入你的应用 → 应用签名页面,复制「SHA1证书指纹」。
    2. 下载Play提供的应用签名证书(DER格式),用以下命令生成Azure所需的Base64签名哈希:
      # 将DER证书转为PEM格式(若已下载PEM可跳过)
      openssl x509 -inform der -in deployment_cert.der -out deployment_cert.pem
      # 生成Base64哈希
      openssl x509 -in deployment_cert.pem -pubkey -noout | openssl sha1 -binary | openssl base64
      

    注意:不要用上传密钥的哈希,必须用Play保管的应用签名密钥生成的哈希。

  • 第二步:更新Azure AD应用注册配置

    1. 进入Azure门户 → 应用注册 → 你的应用 → 身份验证页面。
    2. 找到「移动和桌面应用」平台,编辑现有重定向URI或添加新的:
      msauth://{你的应用包名}/{第一步生成的Base64哈希}
    3. 确保应用包名与Play控制台的包名完全一致,无大小写或拼写错误。
  • 第三步:验证本地发布APK的签名配置

    1. 本地生成发布APK时,必须使用Play控制台中上传密钥的keystore(而非应用签名密钥,该密钥由Play保管)。
    2. 重新打包发布APK,上传至Play控制台的内部测试轨道(优先测试,避免影响生产用户)。
  • 第四步:检查应用内MSAL初始化代码
    确认azure_ad_authentication初始化参数与Azure配置完全匹配:

    final azureAD = AzureADAuthentication(
      clientId: "你的Azure应用Client ID",
      redirectUri: "msauth://com.your.app.package/你的Base64哈希",
      tenantId: "common", // 或你的租户ID
    );
    

    重点核对redirectUri的包名和哈希部分,确保无任何字符错误。

  • 第五步:清理测试环境
    卸载设备上旧版本的应用,重新从Play测试轨道下载安装,避免缓存的旧配置干扰。

内容的提问来源于stack exchange,提问作者Janki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:22:48