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

滴水微瀾發表於2019-01-11
這兩天改版一箇舊的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’。

 

相關文章