微信分享universal link. 導致“未驗證應用”和“二次拉起”
- 使用SDK 自檢函數(shù)排查接入問題
SDK1.8.7版本,WXApi新增了自檢函數(shù)checkUniversalLinkReady:腥光,幫助開發(fā)者排查SDK接入過程中遇到的問題击碗。
如果出現(xiàn)了問題,開發(fā)者
首先通過該函數(shù)檢查問題.
[WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString * _Nonnull log) {
NSLog(@"WeChatSDK: %@", log);
}];
[WXApi registerApp:@"wxAppID" universalLink:@"wxUniversalLink"];
[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult * _Nonnull result) {
NSLog(@"WeChatSDK: %@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);
}];
如:
2021-03-04 16:02:51.114537+0800 [1831:776302] WeChatSDK: 5, 0, Universal Link
check failed. The application is launched by WeChat via scheme, Common problems
self-check guide: [微信開放平臺App iOS端接入新版本SDK 常見問題自查指引]
https://developers.weixin.qq.com/community/develop/doc/000ce0403bc9d0ea1a0a67f415b409
扒拉微信開發(fā)平臺QA, 可以確定就是Universal link
問題.
1).自行用safari檢查universal links配置是否成功。
Safari輸入Universal Links(包括完整路徑)+隨機字符串(apple-app-site-association文件中path下的*號)
像街,下拉頁面看是否有拉起app的入口提示
比如配置的Universal Links: https://help.wechat.com/app/
輸入safari的測試Universal Links: https://help.wechat.com/app/abc
配置項
舉個例子:
Universal Links域名為 https://help.wechat.com
- 配置一:在自己的網站
https://help.wechat.com
根目錄下配置以下json文件
配置文件apple-app-site-association文件
json內容:
{
"appID": "8P7343TG54.com.tencent.xin.SDKSample",
"paths": ["/sdksample/*"]
}
path
中必須配置*
配置一:在"微信開放平臺登記"以及在"openSDK"傳入的Universal Links正確是:
https://help.wechat.com/sdksample/配置二:"Xcode domains"中不包含 path, 可配置多個domain域名, 不過每個域名的根目錄都應有
apple-app-site-association文件
applinks:help.wechat.com
applinks:ive.wechat.com
apple-app-site-association路徑.
兩個目錄下: 域名根目錄
和域名根目錄/.well-known/
https://domain.com/.well-known/apple-app-site-association
https://domain.com/apple-app-site-association
在App第一次運行時, 若App支持Associated Domains
, 我們的iOS App會自動去GET定義的Domain下的apple-app-site-association文件.
- 請求順序
先請求域名根目錄/.well-known/
https://domain.com/.well-known/apple-app-site-association,
如果失敗, 會再去請求域名根目錄
https://domain.com/apple-app-site-association
擴展: 備忘錄和safari中都可以打開app澳骤,怎么分享到其他app里面就不行了阀圾?
未跨域導致的.
如:分享到微信的鏈接是·https://domain.com/share.html
,然后該網頁中的“在app內打開”按鈕配置的通用鏈接為https://domain.com/index.html
灭红。
跨域的意思是說氛改,通用鏈接 和 調用通用鏈接的網頁不要使用同一域名。
即如果通用鏈接域名為domain.com比伏,則通用鏈接所處的網頁域名就不能是domain.com胜卤。
只有跨域后, universal link才生效.