11/08/2024 16:35:55
问题描述
业务安装包的 Universal Link 能力发生问题,一般表现包括但不限于以下现象:
1.手 Q 分享报错“设备未授权(错误码:25105)”
2.手 Q 分享提示“安全校验中,即将跳转回第三方完成验证”
3.微信登录提示“由于应用 universal link 校验不通过,无法完成微信登录”
4.微信登录出现二次授权弹窗界面
5.分享至微信的消息,小尾巴上的应用名称后面有“未验证应用”字样
6.微信多次分享都出现二次跳转现象
问题原因
Universal Link 不通导致
解决方案
一、检查是否已接入过 Universal Link(以下简称“UL”)
若未接入过 UL 能力,需要参照 Universal Link 授权登录接入文档 进行接入。
若已接入过 UL 能力,但联调过程中发现 UL 不通,需要参考下面的排查路径进行自查。
二、检查是否重签名以及打包使用的证书是否具有 UL 能力
1、关于使用证书的一些说明
由于使用企业签名证书重签名 ipa 包的过程会大概率冲掉包内的 UL 能力,验证 UL 能力正常请务必使用“带有 UL 能力的开发证书”直接出包,不要重签名。UL 是否通以开发证书验证结果为准。
2、确认开发证书是否具有 UL 能力的方法
(1)原生及 Unity 构建
在 XCode 工程 - Signing&Capabilities 界面,点开证书右侧小感叹号,查看证书的 Capabilities 中是否有 Associated Domains 标签。
(2)UE 构建
因为不会导出 XCode 工程,需要业务侧自行与证书提供方(一般是联系:Key-Store 助手)确认证书是否具有 UL 能力,也可尝试再次获取最新且开启 UL 能力的开发证书验证。
注意事项:
若对于 ipa 包的打包证书是否具有 UL 能力仍然有疑问,可以将安装包的 .ipa 尾缀改成 .zip 解压,取得下图路径下的 provision 文件,打开文件查看文件中是否有添加 Associated domains 标签。
三、检查 MSDKConfig.ini 文件中是否有配置 UL 路径
通过解压 ipa 包或者从 XCode 工程中寻找的方式,找到 MSDKAppSetting.bundle 文件,点击“显示包内容”,查看其中的 MSDKConfig.ini 文件中,WECHAT_UNIVERSAL_LINK_IOS 配置项的内容是否与游戏自己在 飞鹰系统 上配置的一致。
四、检查 XCode 工程是否有添加 Associated Domains 的能力
(1)原生及 Unity 构建
在 XCode 工程 - Signing&Capabilities 界面找到 Associated Domains 标签(若没有找到该标签,需要点击界面上方的加号自行添加该能力)。
(2)UE 构建
因为打包机制的不同,MSDK 在 UE 引擎会默认添加这个能力,一般不会有未添加能力的情况出现。
五、检查飞鹰系统上是否有配置 UL 路径,以及是否有成功同步到平台侧
业务可以在 飞鹰系统 上查看配置的 UL 路径是否与客户端配置的一致,切记飞鹰系统上配置的 UL 路径最后是以"/"符号结尾的,同时不要有空格字符等。
平台侧的配置情况可以通过内部联系 qqconnecthelper (手Q平台)或者 wxgame(微信平台),提供对应平台的 appid 查询平台侧的 UL 路径配置信息。若未成功同步至平台侧或者配置情况有误,可以在确认飞鹰系统上配置的 UL 路径准确无误后,联系MSDK助手同步相关信息至平台侧。
六、检查 apple-app-site-association 文件的存放位置和配置是否正确
参考文档 Universal Link 授权登录接入文档 以及 Universal Link 配置常见问题 检查 apple-app-site-association 文件是否存放在了域名 根目录,以及文件内的配置是否正确。
例如:飞鹰配置填写 https://docs.itop.qq.com/app/
,apple-app-site-association 文件中某一条 path 如下图设置为 /app/*
,那么在浏览器中输入 https://docs.itop.qq.com/apple-app-site-association
应该是可以成功下载到 apple-app-site-association 文件的。
七、检查游戏生命周期是否有 UL 的相关入口函数
(1)原生及 Unity 构建
需要检查下 XCode 工程中 AppDelegate.mm 或者 UnityAppController.mm 文件中,有没有下面的生命周期函数,若没有该函数,需联系 GCloud 助手重新排查整体 GCloudSDK 生命周期接入是否存在问题。
- (BOOL)application:(UIApplication *)application continueUserActivity:
(NSUserActivity *)userActivity restorationHandler:
(2)UE 构建
UE 引擎的 生命周期函数通过 iOS categery 实现,MSDK 默认已经处理了这里,但是该方案有存在被其他 SDK 替换掉的风险,游戏务必验证 UL 是否生效。
八、检查测试设备是否满足 UL 能力的测试条件
参考文档 Universal Link 拉起验证 排查看看当前测试设备的系统版本、微信和手 Q APP 的版本等是否满足测试条件。
九、检查配置的 Universal Link 域名是否有重定向处理
需确认配置的 Universal Link 域名是否有做重定向。域名重定向后,即使两个域名根目录下都挂载了 apple-app-site-association 文件,也可能会导致拉取该文件时的域名与本地工程配置的域名不一致,进而导致整体 UL 不通以及登录失败的现象。
十、联系 MSDK 助手提供上述排查完的信息
All rights reserved.