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

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’。