iOS微信分享,提示“未验证应用”的解决办法,配置 Universal Link

官方文档

配置 Universal Link

  • 创建一个json文件,格式固定,无需更改。

{

    "applinks": {

        "apps": [],

        "details": [{

            "appID": "teamID.bundleID",

            "paths": ["*"]

            }

        ]

    }

}

配置文件中的details数据, 其中的appID对应的value为teamID 和 bundleID。配置时用“.”拼接,如上述代码teamID在前,bundleID在后。上述两个ID,可以在苹果的开发者网站内找到,顺便将Associated Domains选中。

teamID
  • 编辑完成后,导出文件,并命名为 apple-app-site-association。若有扩展名,必需隐藏扩展名(官方文档有规定)。
  • 生成此文件,将它放入App所用域名的根目录下。

配置项目

  1. xcode打开工程,上面的操作我们已经开启了Associated Domains,这里直接配置就行了。

applinks:+ App的域名,例如:applinks:apple.com

  1. 在AppDelegate中,添加如下方法:
  • swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {

        return WXApi.handleOpenUniversalLink(userActivity, delegate: self)

}
  • oc
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *webpageURL = userActivity.webpageURL;
        NSString *host = webpageURL.host;
        if ([host isEqualToString:@"apple..com"]) {
            //进行我们需要的处理
            [WXApi handleOpenUniversalLink:userActivity delegate:self];
        }
        else {
            [[UIApplication sharedApplication]openURL:webpageURL];
        }
    }
    return  YES;
}

另外,微信的分享接口也已发生了细微变化,增加了分享完成的回调

[WXApi sendReq:req];   // 弃用
[WXApi sendReq:req completion:^(BOOL success) {
        
    }];  // 带回调的新接口

检测是否配置成功

1. 将App删除后,重新编译,安装到手机。

2. 打开Safari,输入App所使用的域名,在网页界面下拉一下

3. 如发现界面顶部有App的入口,点击后,可跳转到App,则表示配置成功。

配置微信开发平台信息

需将App域名添加到微信开放平台的信息中,如: https://apple.com/



注意:

  1. 此处域名必须支持https

  2. 首次发起分享时,会出现二次跳转的行为,具体流程:App拉起微信 - 出现“正在连接”界面 - 返回App - 重新打开微信。这是新的验证流程,每个用户首次使用时都会出现上述跳转。(如同一用户多次使用分享均出现跳转,请检查Universal Links配置 )

  3. 使用pod集成weixinSDK,如果无法获取到1.8.6以上版本,请在官网手动下载,手动替换工程pods中的weixinSDK静态库,头文件,重新编译。

  4. 配置完成,可以成功分享,依然看到“未验证应用”:未验证应用名单非实时更新,前一天有接入新SDK(1.8.6版本以上)并且有正确调用记录第二天才会移除出名单。官方的问题排查文档

  5. 特别强调:第一,可以成功访问到你放在公司域名下的apple-app-site-association文件;第二,在工程里配置applink的环境变量时,注意要把debug和release两个版本都配置上。如果你是发的release版本而没配置,就会提示未验证应用,且可能无法从微信返回app;第三,检查微信后台有没有写对。

你可能感兴趣的:(iOS微信分享,提示“未验证应用”的解决办法,配置 Universal Link)