這兩天改版一個舊的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’。