Unity iOS平台Firebase动态链接唤起应用后回调未触发问题咨询
问题根因
你遇到的问题核心是动态链接内嵌的目标URL格式不符合标准规范,触发Firebase iOS端的校验失败:
从XCode日志的link字段可看到,你的目标链接为:
https://v-spe.com/?screen_id=register?time=1637913115?uid=116
标准URL规范要求:查询参数第一个用?开头,后续所有参数必须用&作为分隔符,你这里time、uid两个参数都错误使用了?作为分隔符,导致Firebase iOS端的解析逻辑无法正确提取参数,直接判定该动态链接无效,因此不会触发回调。
两端表现不一致的原因
Firebase Android端的动态链接解析逻辑做了额外的容错处理,可以兼容非法的多?参数格式,但iOS端的解析逻辑严格遵循URL规范,无对应容错逻辑,因此Android可以正常运行,iOS出现故障。
修复步骤
- 调整动态链接生成逻辑,修正目标URL的参数拼接规则,第一个参数用
?,后续参数统一用&分隔,修正后的目标链接应为:
https://v-spe.com/?screen_id=register&time=1637913115&uid=116
- 如果动态链接由后端生成,同步修改后端的参数拼接代码
- 重新生成动态链接测试,即可正常触发iOS端的动态链接回调
内容的提问来源于stack exchange,提问作者Antti Silvast
相关产品推荐
相关产品推荐

