微信sdk(universal link配置)升级,微信未验证应用,友盟分享sdk升级,多项目同域名配置

微信sdk(universal link配置)升级,微信未验证应用,友盟分享sdk升级,多项目同域名配置_第1张图片

写在前面,如果你的app,已经升级了微信和友盟的最新版,而且正确配置了universal link,分享到微信还是提示未验证应用的话,就等一周左右吧(我们的app也是等了一周左右,未验证应用才消失的。)。如果等不及,可以提交工单。(微信这个做的感觉真的很拉胯)


最近在做新项目时发现微信的sdk从1.8.6版本开始,在registerApp的时候必须提供@param universalLink 微信开发者Universal Link,友盟分享的sdk在6.9.9版本也是需要提供配置universalLink,而且友盟也不在提供微信的精简版本。

网上已经有很多,对于universalLink配置的教程,这里就不在做过多介绍。
我主要说下,一个公司有多个项目,用的同一个开发者账号发布,在配置universalLink的情况。
比如我有两个项目为:
bundleId: TEAM.com.red.company
bundleId: TEAM.com.blue.company

我两个项目用的域名也是同一个:
www.companyname.com

那我的apple-app-site-association文件可以这样写:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TEAM.com.red.company",
                "paths": [ "/app/red/wechat/*"]
            },
            {
                "appID": "TEAM.com.blue.company",
                "paths": [ "/app/blue/wechat/*"]
            }
        ]
    }
}

然后把这个apple-app-site-association文件,放在www.companyname.com的根目录

在xcode - Associated Domains里面可以这样写(两个项目都一样):
applinks:www.companyname.com

在微信开放平台后台的配置分别是:
Universal Links:https://www.companyname.com/app/red/wechat/

Universal Links:https://www.companyname.com/app/blue/wechat/

配置完成之后,在手机备忘录里面写入这两个链接:
www.companyname.com/app/red/wechat/
www.companyname.com/app/blue/wechat/
如果点击能够分别跳转相对应的app,就代表配置正确。


这里也说一下,友盟的新版sdk,需要在初始化微信平台之前设置universalLinkDic

UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSPlatformNameWechatSession : WXAPPLink]
UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSPlatformNameWechatTimeline : WXAPPLink]
UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSPlatformNameWechatFavorite : WXAPPLink]

可以试验分享到微信,然后点击返回到app,如果能够正确返回并且能够拿到回调,代表配置正确。

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        guard let url = userActivity.webpageURL?.description else {
            return true
        }
        print("ullink:" + url)
        if url.contains("wechat") {
            WXApi.handleOpenUniversalLink(userActivity, delegate: self)
        }
        
        return true
    }

目前只遇到微信平台强制需要设置universalLink,如果以后还有其他平台需要,应该原理都是一样的。

你可能感兴趣的:(微信sdk(universal link配置)升级,微信未验证应用,友盟分享sdk升级,多项目同域名配置)