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

React Native Expo Android深度链接失效问题求助


1. 修正Intent Filter的Host配置

你当前的host: '*my-app.com'写法存在问题:通配符前缀仅匹配xxx.my-app.com这类子域名,若你的链接是my-app.com/claim,该规则不会生效。需根据需求调整:

  • 匹配主域名+所有子域名:改为host: '*.my-app.com'(通配符需以*.开头)
  • 仅匹配主域名:改为host: 'my-app.com'
    同时确认pathPrefix与实际链接路径完全对应,比如链接是https://my-app.com/claim/123,/claim的配置是正确的,若路径是/claims则不匹配。

2. 验证SHA256指纹准确性

  • 确认使用的是对应环境的证书指纹:发布版用正式证书指纹,调试版/dev client用调试证书指纹
  • 可通过expo credentials:manager查看Expo管理的证书信息,或本地执行keytool -list -v -keystore your-keystore.jks获取指纹
  • 指纹格式需为大写十六进制字符,无空格,例如AA:BB:CC:DD:...
  • 确保文件放在网站根目录的/.well-known/assetlinks.json路径下,直接访问https://your-domain.com/.well-known/assetlinks.json能看到正确内容
  • 文件必须是数组格式,你的示例缺少外层数组包裹,正确格式如下:
    [
      {
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target": {
          "namespace": "android_app",
          "package_name": "android-package-name",
          "sha256_cert_fingerprints": ["你的SHA256指纹"]
        }
      }
    ]
    
  • 确认网站使用HTTPS协议,且无重定向(App Links强制要求HTTPS)

4. 使用正确的测试方式

  • 避免直接在浏览器点击链接测试(浏览器会缓存验证结果),改用adb命令测试:
    adb shell am start -W -a android.intent.action.VIEW -d "https://your-domain.com/claim"
    
  • 用Android Studio的App Links Assistant(Tools > App Links Assistant)做一键验证,它会给出具体的错误提示

5. 确认Expo插件配置与构建流程

  • 确保已安装并配置expo-app-links插件,在app.json/app.config.ts的plugins数组中添加:
    "plugins": ["expo-app-links"]
    
  • 修改配置后需重新构建应用:使用dev client时执行expo prebuild --clean && expo run:android,发布版需重新提交构建

6. 清除系统缓存

Android会缓存App Links的验证结果,可执行以下操作重置:

  • 进入应用信息页面,选择「打开方式」→ 重置默认应用
  • 执行adb shell pm clear com.android.chrome清除浏览器缓存(若用Chrome测试)
  • 卸载重装应用,确保新配置完全生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:45:31