iOS13適配篇:微信openSDK1.8.6更新導致不能進行微信登錄和分享問題解決方案

微信官方聲明:

openSDK1.8.6 由於蘋果iOS 13系統版本安全升級,爲此openSDK在1.8.6版本進行了適配。 1.8.6版本支持Universal Links方式跳轉,對openSDK分享進行合法性校驗,提升使用過程中的安全性。 我們建議開發者使用新版本SDK測試時,覆蓋測試微信7.0.7版本、iOS12以及蘋果新推出的iOS13,以驗證所使用的接口的功能性和可用性。

微信開放平臺官方更新文檔

背景

隨着iOS13系統的正式推送,各家第三方SDK都對其或多或少進行了更新適配,但在微信SDK更新後,導致APP突然不能跳轉微信進行登錄和分享了,本篇文章是適配踩坑之作,供參考。

2019/09/29更新

經過嘗試,不知道微信的SDK是怎麼更新的,好像並不需要Universal Links支持就可以,大家可嘗試一下步驟,如不行繼續往下看即可:

  1. 註冊時填入“https://”即可(注意:經過嘗試,這裏的universalLink必須和微信後臺填入的一致,直接這樣填是不可行的,只是單純能調起微信,無法分享和登錄,建議大家還是按下面步驟來操作吧
[WXApi registerApp:@"xxx" universalLink:@"https://"];
  1. 在Xcode中,選擇你的工程設置項,選中“TARGETS”一欄,在 “info”標籤欄的“LSApplicationQueriesSchemes“添加weixin 和weixinULAPI(如0x1所示)
  2. 在微信後臺配置Universal Links,鏈接符合要求即可。

以上步驟若仍不能解決跳轉微信問題,可繼續看如下的踩坑之旅。

環境

Xcode10.1iOS12.4

0x1

更新SDK1.8.6後,微信的API發生了少許變更,其中註冊的API需要傳一個Universal Links,因爲我們的APP並不需要支持,所以想着直接傳了nil,如下:

[WXApi registerApp:@"xxx" universalLink:nil];

按照新API更改編譯通過、運行。發現不能微信登錄和分享。點擊後無法跳轉微信,且報錯如下:

-canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"

回看一下微信的文檔發現,可能需要進行這樣的配置:
在這裏插入圖片描述
按此配置完成後,仍然不能跳轉,且報錯:

-canOpenURL: failed for URL: "weixinULAPI://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"

但是官方文檔並沒有此錯誤編號-10814,陷入了沉思。

0x2

仔細閱讀微信聲明的更新文案後,想着,難道必須支持Universal Links纔行嗎?嘗試配置試試看。參考了其他博主配置步驟:

  1. iOS9 Universal Links踩坑之旅,移動應用之deeplink喚醒app
  2. 蘋果官方文檔

其實上面博主寫得已經挺明確了,但是中間還是遇到一些問題,這裏我貼出我的配置供大家參考:

apple-app-site-association文件
在這裏插入圖片描述
Xcode配置在這裏插入圖片描述
有兩點原因使我想着自己暫時把apple-app-site-association文件上傳到阿里雲進行測試

  1. 自己測試不想麻煩後臺幫忙傳
  2. 阿里雲的OSS支持https,而我們測試服不支持https,還得拿證書去配置,麻煩

Universal Links配置OK後,嘗試了,能直接跳到我們的APP了,所以至此我們的APP已經支持Universal Links

0x3

在微信後臺配置Universal Links,以爲需要審覈,然而並不用,直接生效了。這裏的鏈接有要求,已/結尾
在這裏插入圖片描述
最終配置:
在這裏插入圖片描述

最後

修改微信註冊API,運行嘗試看此方法的返回值是不是YES。只有返回YES纔算OK,如還不行,可能微信後臺有延遲,因爲它說它會進行比對的。過幾分鐘再嘗試,應該問題不大了

[WXApi registerApp:@"xxx" universalLink:@"你的微信後臺配的Universal Links"];

到這裏,你已經成功完成了微信openSDK1.8.6對iOS13系統的適配工作。微信登錄和分享功能已正常。恭喜?

如你在此過程中仍然遇到一些問題,歡迎郵件聯繫我,我們一起交流討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章