HTTP协议站点下Universal Link无法唤起APP的问题咨询
问题根因及解决方案
1. apple-app-site-association配置错误
你当前的关联文件存在两处不符合苹果规范的配置:
- appID字段格式错误:苹果要求appID必须为
{开发者团队ID}.{应用Bundle ID}格式,你仅填写了Bundle IDcom.xxx.MyApp,缺少团队ID前缀,系统无法匹配到对应应用。 - paths字段配置错误:URL中
#及后续内容属于客户端片段标识符,不会被纳入Universal Links的路径匹配范围,苹果系统校验路径时会自动忽略#后的所有内容,你将/#/new-password/*写入paths规则,无法匹配到任何链接。
正确的关联文件参考配置:
{ "applinks": { "apps": [], "details": [ { "appID": "你的团队ID.com.xxx.MyApp", "paths": [ "/*" ] } ] } }
如果需要限制仅密码重置路径可唤起APP,可以在APP拿到跳转的完整链接后,自行校验Fragment部分的路径规则,无需在关联文件的paths中配置Fragment相关内容。
2. 触发链接使用HTTP协议不符合要求
苹果Universal Links要求触发跳转的链接本身必须为HTTPS协议,仅关联文件走HTTPS托管不符合规则,你当前使用的http://mysite.dev.com/#/new-password/xxx格式的HTTP链接,会直接被系统判定为普通网页链接,不会触发APP唤起逻辑。
你无需修改站点全局的HTTP配置,只需要将所有需要唤起APP的对外链接(比如密码重置邮件链接)改为HTTPS格式,Nginx侧对应配置HTTPS访问的规则即可。
验证步骤
配置修改完成后按以下顺序验证:
- 重新安装APP,触发苹果服务器拉取最新的关联文件
- 在备忘录中输入HTTPS格式的测试链接,长按链接如果出现「在[你的应用名称]中打开」选项,说明配置生效
- 再测试邮件场景的链接跳转逻辑
内容的提问来源于stack exchange,提问作者Whirlwind
相关产品推荐
相关产品推荐

