本文借鑒https://www.jianshu.com/p/6a25b18577eb,感謝博主的分享。
本文主要講解微信配置Universal Link問題,以及公司項目下多個app配置方案。
注意事項(很重要)
1.幾個app共用一個pple-app-site-association文件,注意不同app可以根據path進行區分,在微信后台幾openSDK傳入的Universal Links是需要傳入【https://域名+path】,不同的app對應不同的path,因此不會互相影響。
2.項目中AppDelegate的continueUserActivity方法:進行處理,如下,如未做處理會出現每次分享都出現正在連接界面。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
第一:更換的必要性
微信開發者平台,包括QQ目前新建應用都必須配置Universal Link
,老本版存量問題,微信開發者平台公告2020年3月起逐漸收回老版本功能。因此更新ShareSDK配置Universal Link
就是必須要做的。
第二:自己配置的Universal Link
步驟
1.讓后台人員准備一個https的鏈接,供后面存放建好的apple-app-site-association文件
2.制作apple-app-site-association文件,並放置在准備好的鏈接根目錄下
3.在App Store對相應的buildID開啟Universal Link服務
4.在Xcode開啟Associated Domains,並填寫對應Domains
5.用GET請求測試該鏈接下的文件內容,並在safari瀏覽器中測試
6.填寫微信新的LSApplicationQueriesSchemes
7.回調測試
第三步驟詳解
1.准備htttps鏈接,制作apple-app-site-association文件(文件名一定吧不能更改),放根目錄的(.well-known)的子目錄下,或者根目錄下,地址一定是這兩個中的一個。
2.制作apple-app-site-association文件
a.單個app,示例如下,其實就是一個json,apps數組不用管,details里面填入對應得appID和paths。appID就是用前綴+bundleID的方式,把它交給你的后台人員,按照之前說的放到相應目錄。並且使用GET請求進行測試,確保路徑能正常訪問。
{
"applinks": {
"apps": [],
"details": [
{
"appID": "xxxxxxxx.com.xxxxxxx",
"paths": ["*"]
},
]
}
}
B.多個App同時用1個apple-app-site-association,示例如下,通過paths來限制打開那個應用。其他同單個單用,打開app就是前面域名+/shahxi/
{
"applinks": {
"apps": [],
"details": [
{
"appID": "xxxxxxxx.com.xxxxxxx",
"paths": ["/shanxi/*"]
},
{
"appID": "xxxxxxxx.com.xxxxxxx",
"paths": ["/chengdu/*"]
},
]
}
}
3.在App Store賬號管理里找到對應的app id給其開通Associated Domains服務
在項目中,添加對應的值,以applinks:+你准備的UniversalLink的形式填寫,注意此次應是裸的域名,不要加https或者文件名例applinks:help.wechat.com。
在注冊微信分享app哪里,是完整的UniversalLink,例如多個應用可能是這樣的形式(https://域名/shanxi/),微信后台哪里填寫的也是完整的UniversalLinkhttps://域名/shanxi/)
4.一切就緒可以在Safari里面進行測試。
卸載一次APP,build run一下,然后你就可以先在safari瀏覽器中測試走一波,把鏈接地址輸入進去如https://help.wechat.com。頁面加載完往下拉一下,看是否有打開APP的提示,如果有則配置成功!
5.以上步驟與微信毫無關系,但證明UniversalLink已經配置成功,可進行APP跳轉。
接下來是微信開放平台和SDK注冊方法填寫相同UniversalLink,注意此次微信的要求https開頭 /結尾,列如:https://help.wechat.com/
6.也許這個時候你迫不及待想去調起微信,結果一定是失敗的,因為此次更新后,還要添加一個新的Schemes。在Xcode中,在 “info”標簽欄的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如下圖所示)。