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

Expo SDK 48 Android 13深度链接无法通过二维码打开问题求助

解决方案

1. 修正AndroidManifest.xml的深度链接配置

确保承载深度链接的Activity(通常是MainActivity)的intent-filter添加android:autoVerify="true"属性,同时确认data标签的scheme、host配置准确:

<activity
  android:name=".MainActivity"
  ...>
  <intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- 替换为你的深度链接scheme和host -->
    <data
      android:scheme="your-custom-scheme"
      android:host="your-domain.com" />
  </intent-filter>
</activity>

2. 配置Digital Asset Links验证文件

Android 13要求App Links必须通过域名验证,需在你的域名根目录或.well-known目录下放置assetlinks.json文件,格式如下:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "你的应用包名",
    "sha256_cert_fingerprints": ["应用签名的SHA256指纹"]
  }
}]
  • 获取SHA256指纹:执行keytool -list -v -keystore 你的签名文件路径 -alias 签名别名命令提取
  • 验证文件可访问性:通过https://你的域名/.well-known/assetlinks.json确认能正常加载

3. 适配Expo SDK 48的原生代码变更

SDK 48升级后需确认原生代码的链接处理逻辑:

  • 在MainActivity.java或MainActivity.kt中确保传递intent给React Native:
// Java示例
@Override
protected void onNewIntent(Intent intent) {
  super.onNewIntent(intent);
  getReactInstanceManager().onNewIntent(intent);
}
  • 检查Module级build.gradle的API版本配置,确保与SDK 48兼容:
android {
  compileSdkVersion 33
  defaultConfig {
    targetSdkVersion 33
    ...
  }
}

4. 清理缓存并重新构建

  • 进入项目android目录,执行./gradlew clean清除构建缓存
  • 卸载设备上的旧应用,重新安装构建后的APK
  • 用命令测试深度链接:adb shell am start -W -a android.intent.action.VIEW -d "your-custom-scheme://your-domain.com/test-path"

5. 手动配置链接关联(自动验证失效时)

如果自动配置仍不生效,可手动在设备中设置:

  1. 打开设置 → 应用 → 你的应用 → 进入“默认应用”或“链接处理”选项
  2. 找到对应链接的scheme/host,将你的应用设为默认处理应用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:22:34