iOS 處理第三方SDK沖突問題


在一個項目中要集成新顏第三方,需要用到明鏡與設備指紋,可能是版本有些老,兩個SDK集成進去后發現沖突了,如下圖所示,兩個里面有很多重復的SDK,於是就考慮修改第三方靜態庫,把其中的重復文件為刪除掉。

方法如下:

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

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

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

lipo -info XYRiskAssessment-iOS-1.0.0.a

根據結果可以看出包含armv7 x86_64 arm64這幾個庫,沖突文件必須從必須從每個架構的庫里面相應刪除才行。

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

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

比如:

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沖突問題,還是建議大家先問下他們的技術人員咨詢下~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM