UniversalLink适配踩坑

iOS UniversalLink适配踩坑

最近微信OpenSDK升级微信OpenSDK更新要求

关于openSDK1.8.6的更新说明

由于苹果iOS 13系统版本安全升级,为此openSDK在1.8.6版本进行了适配。 1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。

*建议开发者接入新版本SDK, 覆盖测试微信7.0.7或以上版本、iOS12或13,以验证所使用的接口的功能性和可用性。

以及QQ OpenSDK更新要求

1. 系统及版本要求

Universal Links方案是基于苹果在iOS13系统上针对隐私政策的调整,相关的验证环境请首先确认:
1. SDK版本: OpenSdk3.3.7或以上
2. 手Q版本: 8.1.3或以上
3. 系统版本: iOS13或以上

但是 但是 但是

2020年3月17日更新的QQ OpenSDK 3.3.8版本支持了iOS13以下的Universal Links,新增支持设置opensdk只使用UniversalLink模式与手机QQ交互(系统要求大于等于iOS9)和需要使用新的注册方法

/**
* 初始化TencentOAuth对象(>=3.3.8)
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
* \param enabled  默认为NO,第三方应用是否将sdk和手机QQ的交互方式切换为UniversalLink方式,启用后则在iOS9及以上的系统都会生效UniversalLink方式;否则,默认仅在iOS13及以上的系统生效UniversalLink方式。
* \param universalLink 可以为nil,第三方应用在互联开放平台注册的UniversalLink,和bundleID一一对应(当为nil时,互联平台会按规则生成UniversalLink,详见官网说明)
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
* \return 初始化后的授权登录对象
*
*****【使用说明】*****
*  1、支持sdk与手Q的交互切换为UniversalLink模式,主要目的"是为了避免手Q的UrlScheme被其他应用抢注后,导致sdk接口功能受到影响"。
*  2 、由于手Q版本在 >=8.1.3 后才适配了UniversalLink,所以一旦开启了enabled开关,“务必做到”及时知会用户升级手Q版本。
*****
*/
- (id)initWithAppId:(NSString *)appId
 enableUniveralLink:(BOOL)enabled
      universalLink:(NSString *)universalLink
           delegate:(id)delegate;

注意 由于手Q版本在 >=8.1.3 后才适配了UniversalLink,所以一旦开启了enabled开关,“务必做到”及时知会用户升级手Q版本

QQ填写及校验universallinks

所以,项目需要做Universal Links适配,准备工作按照Universal Links 苹果官方文档操作即可

这里遇到的最大的坑是,网上大多数的文章所写的的apple-app-site-association文件中关于Paths都写着可以用"paths": [ "*" ],但是如果公司不止一个App需要适配,那么这么写是不对的,因为这代表这域名下所有链接都跳这个指定的App,分享过程会产生很多匪夷所思的问题。

正确操作

域名

指定域名:https://www.xxx.com

apple-app-site-association文件放在该域名根目录下或者.well-known目录下,没有.json后缀.

https://www.xxx.com/apple-app-site-association

https://www.xxx.com/.well-known/apple-app-site-association

apple-app-site-association文件格式

单个App

信息:
Team ID   :Honzon
Bundle ID :com.honzonapp
appid       :12345678


{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "Honzon.com.honzonapp",
            "paths": ["*","/qq_conn/12345678/*"]
        }
    }
}

注册相应平台的universalLink链接

appid       :12345678

微信  https://www.xxx.com/
QQ   https://www.xxx.com/qq_conn/12345678/ 

多个app

信息:
Team ID   :Honzon

Bundle ID :com.honzonapp
appid       :1111111

Bundle ID :com.hzapp
appid       :2222222

Bundle ID :com.hoapp
appid       :3333333


{
    "applinks": {
        "apps": [],
        "details": [{
            "appID": "Honzon.com.honzonapp",
            "paths": ["/wechat-honzon/*","/qq_conn/1111111/*"]
        },{
            "appID": "Honzon.com.hzapp",
            "paths": ["/wechat-hz/*","/qq_conn/2222222/*"]
        },{
            "appID": "Honzon.com.hoapp",
            "paths": ["/wechat-ho/*","/qq_conn/3333333/*"]
        }
    }
}

注册相应平台的universalLink链接

Bundle ID :com.honzonapp
appid       :1111111

微信  https://www.xxx.com/wechat-honzon/
QQ   https://www.xxx.com/qq_conn/1111111/ 



Bundle ID :com.hzapp
appid       :2222222

微信  https://www.xxx.com/wechat-hz/
QQ   https://www.xxx.com/qq_conn/2222222/ 



Bundle ID :com.hoapp
appid       :3333333

微信  https://www.xxx.com/wechat-ho/
QQ   https://www.xxx.com/qq_conn/3333333/ 

2020.08.35更新

设备会下载apple-app-site-association的json文件到设备本地,并有一定时间的缓存,适配时一定要注意

记此一游,谨防踩坑。

未经授权,禁止转载

未经授权,禁止转载

未经授权,禁止转载

你可能感兴趣的:(UniversalLink适配踩坑)