IOS 解决友盟微信登录或分享报 universal link 校验不通过的问题

IOS 解决友盟微信登录或分享报 universal link 校验不通过的问题

官方文档

  • apple
  • 友盟
  • 微信开发平台

通用链接是iOS9推出的一项新功能,如果你的应用app支持通用链接(Universal Link)之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。

配置

  • 新建 apple-app-site-association
{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "公司开发者账号的小组ID.包名id",
                "paths": ["*"]
            }
        ]
    }
}

这里的appID是指:TeamID+BundleId的组成(例:6CCC99AB4B.com.wen.test)(TeamID可以在开发者账号里面查看,BundleId是项目的Bundle Identifier)。

这里的paths是指:是设置允许的路径列表,可以是一个也可以是多个,如 /applink/*",最简单的方式是使用"*",通配符,表示允许该域名下的任意路径。(注意:paths中的大小写是敏感的,一定要一一对应

  • apple-app-site-association 上传到域名的根目录下或者.well-known的子目录下

    • 文件的 URL 应符合以下格式: https:///.well-known/apple-app-site-association
    • 必须要是可访问的域名
    • 必须使用https://有效证书托管文件,并且没有重定向
  • 登陆开发者账号,开启该AppId下的关联域名(Associated Domains)功能设置AssociateDomain

    • 登录苹果开发者后台
    • 打开证书页面,找到IdentifiersApp IDs下自己的证书
    • 选择Associated Domains
    • 点击Save
    • 记得最后要更新下证书,(开发时可以先不更新,不影响后面的操作)。
    设置AssociateDomain
  • 在 Xcode 中配置关联域名:在 app 中处理通用链接,添加对应的域名(上面知道的域名)到Capabilities在项目里面定位到Capabilities,找到Associated Domains,点击允许按钮,在Domains中添加对应的域名。(Domains中的域名必须是使用applinks开头,然后输入自己的域名即可。注意:当 app 第一次启动之后,会自动从你自己的域名目录下下载这个apple-app-site-association文件。)

  • 注意:Universal link的域名和H5页面URL的域名不可以是同一个,详情请看Universal link同域不能唤起

配置关联域名

配置关联域名
  • 示例 applinks:shufa.fanglige.com

  • 我们的App在设备上第一次运行时,如果支持Associated Domains功能,那么iOS会自动去GET定义的Domain下的apple-app-site-association文件。

  • AppDelegate.m 中实现代理方法,并做打开的相应处理

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler {
    return YES;
}

友盟微信配置

  • 先在微信平台中配置 Universal Link

    • 示例: https://shufa.fanglige.com/applink/
  • 友盟 UMSocialGlobal 配置

[UMSocialGlobal shareInstance].universalLinkDic = @{
    @(UMSocialPlatformType_WechatSession):@"https://shufa.fanglige.com/applink/"
};
  • 更改回调
- (void)setupUSharePlatforms {
    /* 设置微信的appKey和appSecret */
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wx59530f055084abb7" appSecret:@"795af367a7b85a868ed75c1c921ca4a2" redirectURL:nil];
    /*设置小程序回调app的回调*/
    [[UMSocialManager defaultManager] setLauchFromPlatform:(UMSocialPlatformType_WechatSession) completion:^(id userInfoResponse, NSError *error) {
        Log(@"setLauchFromPlatform:userInfoResponse:%@", userInfoResponse);
    }];
}

你可能感兴趣的:(IOS 解决友盟微信登录或分享报 universal link 校验不通过的问题)