**全面了解 ios 靜態庫開發 1、
全面了解 ios 靜態庫開發
1)、靜態庫和動態庫:
字尾不一樣,前者是.a,後者是.dylib;
載入方式不一樣,前者在鏈結時被複製到可執行**,可以存在多份,後者是執行時被載入到記憶體,只會存在乙份;
2)、打包debug版靜態庫,分為給模擬器使用還是真機使用,還分為是debug版,還是release版
不同之處是:
模擬器:
真機:debug(除錯)版本
含完整的符號資訊,以方便除錯
不會對**進行優化
release(發布)版本
不會包含完整的符號資訊
的執行**是進行過優化的
的大小會比debug版本的略小
在執行速度方面,release版本會更快些(但不意味著會有顯著的提公升)
無編譯錯誤後,
選擇模擬器還是真機,
直接build,就可以生成.a了。
原來打包.a好簡單!
不過也不是這麼簡單,上面看出,不管模擬器還是真機,都需要支援多種cpu架構,不然在不支援的裝置上會crash:
non-fat file: libbcpulltorefreshtableview.a is architecture: arm64
怎麼解決呢?
把開關變成no,就可以了:
architectures in the fat file: libbcpulltorefreshtableview.a are: armv7 arm64
3)、如何實現真機和模擬器兩個.a結合?
合併好壞:
合併產生新的靜態庫:
--> lipo -create debug-iphoneos/***.a debug-iphonesimulator/***.a -output ***.a
合併產生新的靜態庫:
4)、製作release版的靜態庫
跟debug版步驟一樣,只不過在編譯時,改下面的選項即可
5)、製作framework版本的靜態庫
選擇framework
編譯時,預設製作成動態庫,要在下面選擇(因為framework預設是製作成動態庫的)
合併靜態庫時,是選.framework檔案裡的libstaticlib檔案
合併:刪除libstaticlib,libcalculatetool拉入libstaticlib.framework專案中,libstaticlib.framework靜態庫製作完成
iOS開發之靜態庫
最近在與第三方支付平台對接的時候,接過來的文件demo裡含有.a靜態庫檔案,但是因為庫包出錯,需要修改,才發現.a靜態庫檔案不可修改,所以上網進行了了解學習。現在跟大家分享一下學習的心得。framework 檔案和.a 檔案都是庫檔案 那什麼是庫檔案 庫是程式 的集合,是共享程式 的一種方式 根據源...
ios開發靜態庫生成
首先簡單說下哈 庫就是程式 的集合,是共享 的一種方式 分為開源庫 sd,mi,afn 和閉源庫 看不到具體實現的 閉源庫分為靜態庫和動態庫 靜態庫 a 和 framework 動態庫 dylib 和 framework 靜態庫 鏈結時,靜態庫會被完整地複製到可執行檔案中,被多次使用就有多份冗餘拷貝...
iOS開發之靜態庫的製作
當你需要和別人分享 但又不想讓別人看到你內部的實現時就需要製作靜態庫,通常用於第三方sdk 下面就分享一下製作靜態庫 a 的過程 1 開啟xcode,新建workspace 2 隨便給workspace取個名字 3 在workspace新建工程 4 選擇靜態庫 5 點選下一步 6 刪除系統自動幫你生...