iOS 處理第三方SDK衝突問題

在一個項目中要集成新顏第三方,須要用到明鏡與設備指紋,多是版本有些老,兩個SDK集成進去後發現衝突了,以下圖所示,兩個裏面有不少重複的SDK,因而就考慮修改第三方靜態庫,把其中的重複文件爲刪除掉。架構

方法以下:blog

1.打開終端cd到所要修改的.a庫所在文件目錄(最好備份出來到專門的目錄)ip

2.查看靜態庫文件包含的架構開發

查看.a庫文件所包含的架構庫命令:
lipo -info XXXXX.a
看看有什麼架構的編譯庫,好比:編譯

lipo -info XYRiskAssessment-iOS-1.0.0.asdk

根據結果能夠看出包含armv7 x86_64 arm64這幾個庫,衝突文件必須從必須從每一個架構的庫裏面相應刪除才行。終端

3.從fat文件裏面分離出來各個架構的庫。方法

命令:lipo -thin armv7 XXXXX.a -output XXXXX-armv7.aim

好比:技術

lipo -thin armv7 XYRiskAssessment-iOS-1.0.0.a -output armv7.a

以後能夠看到文件目錄下已經分離出來armv7.a文件,同理再分理出x86_64 arm64文件

 

4.查看庫中所包含的文件列表

命令爲:

ar -t armv7.a

5.若是不清楚兩個sdk都有哪些文件重複,能夠按照以上步驟,查看下XinYanDeviceSDK.framework這個sdk都包含哪些文件,以下所示

 

6.從每一個架構的.a文件中刪除與其餘sdk衝突的.o文件

命令::ar -d -sv XXXXX-armv7.a XXXX.o

好比:

ar -d -sv arm64.a XinYanDeviceSDK.o

7.當裏面的重複文件刪除完以後,從新生成fat文件

和並靜態庫的命令:
lipo -create XXXXX-armv7.a XXXXX-armv7s.a (加上全部架構的編譯庫) -output XXXXX-NOFfmpeg.a

好比:

lipo -create armv7.a x86_64.a arm64.a  -output XYRiskAssessment-iOS-1.0.0.a

最後將這個新生成的靜態庫文件替換掉以前的,發現衝突解決。

 

說到最後,這篇文章主要記錄處理第三方衝突問題的解決,後面發現新顏提供了新版本的第三方,無需導入兩個sdk,因此開發中遇到第三方sdk衝突問題,仍是建議你們先問下他們的技術人員諮詢下~~~

相關文章
相關標籤/搜索