App 唤醒 (DeepLink / Universal Links / App Links) 配置生成与扫码调试器

基于 Rust Wasm 的移动端 H5 唤醒 App 全链路配置编译器:一键生成并校验 iOS apple-app-site-association (AASA)、Android assetlinks.json 与微信防拦截 H5 唤醒兜底代码。

1. iOS Universal Links 与 Android App Links 参数配置

加载 Wasm 中...
📱 当前访问环境: Desktop · Standard Browser
✅ Apple Team ID、Bundle ID、路径规则及 Android SHA-256 签名证书指纹均已通过语法校验!
🍎 iOS Universal Links (AASA)
🤖 Android App Links & Custom Scheme
📌 部署路径:https://你的域名/.well-known/apple-app-site-association(注意:文件名无 .json 后缀,且响应头必须为 Content-Type: application/json,不可有 301/302 重定向)
{
  "applinks": {}
}

🚀 真机浏览器一键唤醒实测沙盒

在手机浏览器或微信内打开本页,直接点击右侧按钮即可实测您的 App 能否被正常唤醒或触发兜底逻辑:

💡 省钱实战方案 · 开发者精选资源官方合作链接 · 由对应平台提供全部售后保障

从 H5 网页丝滑唤醒原生 App:全链路避坑指南

本工具是作者技术博文 《从任意地方打开App(URL Scheme、Universal Links 与 App Links 深度解析)》 的配套在线实战工作台。在日常混合开发(Hybrid / H5 增长投放)中,手写 apple-app-site-association 与 assetlinks.json 极易因为拼写错误、Team ID 位数不对或 SHA-256 冒号格式问题导致唤醒静默失败。

  • iOS 13+ 与旧版双兼容 AASA 结构: 自动同时生成现代 components 数组(支持精细化路径排除 "exclude": true)与传统 paths 字段,兼容所有 iOS 版本。
  • Android Digital Asset Links 严格校验: 实时利用 Rust Wasm 校验 32 组十六进制 SHA-256 证书指纹格式,杜绝因多空格或漏冒号导致 Google 验证失败。
  • 内置 `visibilitychange` 无感兜底算法: 告别早期已失效的 `iframe` 唤醒方案,利用现代浏览器 `document.hidden` 状态监听判断 App 是否成功唤起,未安装时平滑跳转至 App Store 或 APK 下载页。

常见问题与实战解答 (FAQ)

为什么配置好了 apple-app-site-association (AASA),iOS 依然打不开 App?

90% 的踩坑原因集中在三点:第一,Web 服务器返回 AASA 文件时没有设置 Content-Type: application/json,或者返回了 301/302 重定向(苹果 CDN 爬虫严禁任何重定向);第二,iOS 14+ 以后苹果不再由手机直接请求你的域名,而是通过 Apple CDN (app-site-association.cdn-apple.com) 代理抓取,因此你的服务器防火墙不能屏蔽海外苹果节点;第三,在同域名网页内通过 location.href 跳同域名 Universal Link 会被 iOS 判定为普通网页刷新,必须跨二级域名触发(例如从 m.example.com 跳转到 link.example.com)。

微信内置浏览器里为什么 URL Scheme 会失效?如何优雅兜底?

微信内置 WebView 默认开启了白名单机制,非白名单 App 的自定义 URL Scheme(如 myapp://)会被直接静默拦截。通用解决方案是:在 iOS 端配置 Universal Links(微信无法拦截系统级跨域 Universal Link 唤醒),或在检测到 navigator.userAgent 包含 MicroMessenger 时弹出右上角引导遮罩提示用户“在默认浏览器中打开”。本工具生成的 H5 脚本已完整内置该逻辑。

Android assetlinks.json 中的 SHA-256 指纹应该用 Debug 还是 Release 签名?

线上生产环境的 assetlinks.json 必须填写正式发版签名(Release Keystore 或 Google Play App Signing 托管签名)的 SHA-256 指纹。如果在本地调试,可以在 sha256_cert_fingerprints 数组中同时放入 Debug 签名指纹和 Release 签名指纹。