最近領導說:以前老的友盟分享,分享到微信會有一個(未驗證應用)標記。
解決問題的路就開始了。
因為是swift項目,pods使用framework,不能一鍵集成。于是按照友盟的文檔,把組件化后的友盟庫全部手動拖到項目里。
錯誤來了:
1、MobClick報錯
友盟文檔里說了,合并到了基礎庫里,改了一下頭文件解決。
2、Universal Links問題:
新版本微信必須支持Universal Links,照著友盟的文檔,后來又面向百度編程,把UL配上去了。
這些好搜索,照著做就好了。
接下來是深坑:
2.1 友盟開始報錯了
https://developers.weixin.qq.com/community/develop/doc/0004e4afac0b40b2557a65ef251000
這篇反饋,寫出了這位coder的絕望,友盟的回復也很玄學,改一改信息就好了?
很明顯這里是不對的,于是不信邪的我,換成微信的SDK方法直接測試
2.2 微信也報錯?
https://developers.weixin.qq.com/community/develop/doc/0004843ea80008d8440b6242a5ac00?_at=1602816121104
這篇文章的回復也同樣令人窒息,微信支持說報一下日志?
在鏈接里點了幾篇相似帖子看,微信建議照著文檔調試,那就照著文檔一步步來吧!
2.3 調試
微信和自己的項目,都通過Safari調試了,都可以通過UL喚起
問題到底在哪里?
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
微信這篇接入說明里,有調試這一步。
// WXApi.startLog(by: WXLogLevel.detail) { (log) in
// print("WeChatSDK: ", log);
// }
// WXApi.registerApp("你的SDK", universalLink: "你的Universal Link")
// WXApi.checkUniversalLinkReady { (step, result) in
// print("WeChatSDK: ", step.rawValue, result.success, result.errorInfo, result.suggestion)
// }
直接通過調試打印,每一步都沒報錯,可就是進了一下微信授權頁面,就沒動靜了
那應該是步驟錯了
2.4 WXULCheckStep一共有7步
轉折來自于WXULCheckStep這個枚舉
這里一共有7步,微信文檔上說,checkUniversalLinkReady打印false的時候,就是出錯了,我這里打印的都是true,但是到了第5步就沒了下文。
進去這個枚舉看,還有回調的剩下兩步竟然沒走!!!!!
問題精確到了點上,就猜到了可能是回調方法的問題,是不是寫錯了?
2.5 最后在微信的文檔里發現驚喜
WXApi文件里有這樣一個方法
加到appdelegate里面就好了。
至此通過微信直接調用分享已經打通
3、 友盟你是想干啥?
回調的問題測試好了,我又按照友盟的步驟來,把微信相關的重新寫了一遍,發現又不行了!!!!
???????????
又出現了玄學三聯問
UMengShare<6.9.8>(Info):[UMSocialManager:442][SCI10006]分享/授權登錄后如果無法返回應用(微信、QQ、微博等平臺)。 https://developer.umeng.com/docs/66632/detail/67028?um_channel=sdk
UMengShare<6.9.8>(Info):[UMSocialWechatHandler:1118][SWI10007]微信分享報錯提示,請請檢查微信是否安裝。 https://developer.umeng.com/docs/66632/detail/67042?um_channel=sdk
UMengShare<6.9.8>(Info):[UMSocialWechatHandler:1119][SWI10009]微信分享報錯'由于invalid_app無法分享到微信。 https://developer.umeng.com/docs/66632/detail/67044?um_channel=sdk
經過測試,我把微信的注冊方法取消注釋,和友盟的注冊方法同時寫上,就不會出現這個問題了。那就是友盟沒把Universal Link注冊進去。雖然我已經在注冊appid代碼之前寫了
UMSocialGlobal.shareInstance()?.universalLinkDic = [UMSocialPlatformType.wechatSession:"我的Universal Link"]
最后,我在友盟注冊之前把微信的注冊方法調用一遍,問題算是解決了吧。
還拉著我的小伙伴跟我一起找了半天資料,感謝他。