iOS製作靜態包duplicate symbol解決辦法

來源:互聯網
上載者:User

標籤:tac   framework   targe   work   googl   製作   arm   over   解決方案   

原文連結 http://stackoverflow.com/questions/41217839/duplicate-symbols-when-integrating-firebase-and-google-sign-in-sdks-manually-wit

製作靜態包時我們很可能會引入第三方的庫,這種時候很容易出現我們的靜態包和主工程引入的第三方庫有相同庫的情況,為瞭解決這個問題上面連結給出瞭解決方案。

1、先製作一個靜態包。

2、使用 lipo -info 查看這個靜態包是不是fat file,如果是fat file就把它拆開成 x86_64.a,i386.a 這種多個機型的包

3、在我們得到的某個 檔案不是fat file時 執行 ar -x i386.a 這個命令可以將這個靜態庫拆成多個.o檔案,每個.o檔案就是 我們工程中對所有.m檔案的編譯後的output。這時候選中我們引用的第三方庫的.o檔案全部刪除。然後剩下的就是我們的代碼了

4、將我們自己的所有.o檔案再合在一起產生一個新的.a檔案:lipo -static  *.o -output i386_new.a 這種形式

5 、 運用上面的方法將所有上面產生的 arm_64.a,i386.a,x86_64.a都產生一份 *_new.a這種檔案

6、重新合成:lipo create arm_64_new.a i386_new.a -output xx.a

7、合成的xx.a就是我們要的剔除了第三方庫的最終靜態包,添加到你的主工程,如果是裝了pod的話,把 other linker flag 的-framework刪除然後pod update 

->Xcode run.

iOS製作靜態包duplicate symbol解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.