iOS 微信支付SDK與微信友盟分享兩者同時集成時,出現的問題與解決之路。


這兩天改版一個舊的APP,要舊貌換新顏,拿到app后進行編譯,一直報下面的錯誤。
報不認識的符號名PayReq錯誤。奇怪,啥也沒動就這樣,真不知道給的包是不是本來就是個報錯的工程。
不管怎樣,要對它修改就先要跑起來啊。
 
根據錯誤提示,判斷是libwechatsdk.a里面沒有這個方法。順藤摸瓜按照下面的步驟開始了解決旅途。
 
階段一
1. 手動添加了微信支付SDK源碼到工程 
2. pod 'UMengUShare/Social/WeChat’添加了微信分享,
編譯時報錯如下:

說明導入的微信支付SDK中並沒有微信支付調用接口的實現。這可能是復制的微信支付SDK有問題(老項目中帶的,不知道來源是哪里)。那用pod方式就換成最新的吧。

 

階段二

1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk
2. pod 'UMengUShare/Social/WeChat’添加了微信分享

Pod時報錯如下:

提示libwechatsdk.a已經存儲。
於是在工程搜一下:
果然libwechatsdk.a已經被友盟分享下載過了,可不是要報這個錯嗎。
步驟走到這里,看上去基本無解了,兩者都包含,肯定無法都下載啊,這可咋辦呢,喝杯水冷靜下。
 
我可以搜一下“如何用pod集成微信支付與友盟分享”啊.
在網上搜了一下,果然發現了有相似問題的文章。
發現友盟微信分享是分完整版和精簡版的,感情我現在下的是完整版啊,所以才產生了沖突,那要找不包含libwechatsdk.a的版本,其實就是找精簡版的了。

那就在網上找找友盟微信分享精簡版的pod地址,貼上去就好了。

趕緊google一下

 

果然,看到了勝利的曙光。
於是迫不及待的替換掉pod 'UMengUShare/Social/WeChat’試一下。
 
階段三
1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk
2. pod 'UMengUShare/Social/ReducedWeChat' 添加友盟精簡版微信分享
 
Pod install 結果如下:
OK了
 
builde一下,success通過。
 
通過查看WXApiObject.h文件聲明發現
'WechatOpenSDK' 庫其實 和‘UMengUShare/Social/WeChat’這個庫很類似,里面暴露的接口幾乎一樣。
說明兩種重復定義實現了大部分內容。
 
兩者的區別是'WechatOpenSDK'庫中的WXApiObject類多了一個第三方向微信終端發起支付的消息結構體,
在這個類中聲明了個 @interface PayReq : BaseReq
來喚起微信的支付功能。
 
所以要同時實現微信支付和友盟微信分享
需要用友盟微信分享的精簡版pod 'UMengUShare/Social/ReducedWeChat’與微信支付SDK pod ‘WechatOpenSDK’。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM