這兩天改版一箇舊的APP,要舊貌換新顏,拿到app後進行編譯,一直報下面的錯誤。
報不認識的符號名PayReq錯誤。奇怪,啥也沒動就這樣,真不知道給的包是否是原本就是個報錯的工程。
無論怎樣,要對它修改就先要跑起來啊。
根據錯誤提示,判斷是libwechatsdk.a裏面沒有這個方法。順藤摸瓜按照下面的步驟開始瞭解決旅途。
階段一
1. 手動添加了微信支付SDK源碼到工程
2. pod 'UMengUShare/Social/WeChat’添加了微信分享,
編譯時報錯以下:
說明導入的微信支付SDK中並無微信支付調用接口的實現。這多是複製的微信支付SDK有問題(老項目中帶的,不知道來源是哪裏)。那用pod方式就換成最新的吧。微信
階段二app
1. pod ‘WechatOpenSDK' 添加最新的微信支付sdk
2. pod 'UMengUShare/Social/WeChat’添加了微信分享
Pod時報錯以下:微信支付
![](http://static.javashuo.com/static/loading.gif)
提示libwechatsdk.a已經存儲。
因而在工程搜一下:
果真libwechatsdk.a已經被友盟分享下載過了,可不是要報這個錯嗎。
步驟走到這裏,看上去基本無解了,二者都包含,確定沒法都下載啊,這可咋辦呢,喝杯水冷靜下。
我能夠搜一下「如何用pod集成微信支付與友盟分享」啊.
在網上搜了一下,果真發現了有類似問題的文章。
發現友盟微信分享是分完整版和精簡版的,感情我如今下的是完整版啊,因此才產生了衝突,那要找不包含libwechatsdk.a的版本,其實就是找精簡版的了。
那就在網上找找友盟微信分享精簡版的pod地址,貼上去就行了。ui
趕忙google一下
![](http://static.javashuo.com/static/loading.gif)
果真,看到了勝利的曙光。
因而火燒眉毛的替換掉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’。