首先簡單說下哈: 庫就是程式**的集合,是共享**的一種方式
分為開源庫(sd,mi,afn)和閉源庫(看不到具體實現的)
閉源庫分為靜態庫和動態庫
靜態庫: .a 和 .framework
動態庫: .dylib 和 .framework
靜態庫:鏈結時,靜態庫會被完整地複製到可執行檔案中, 被多次使用就有多份冗餘拷貝
動態庫:鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體
接下來講講製作.a的方法
第一步: 新建乙個工程選擇如下:
之後下一步啦新建工程。
開啟工程後乾掉聲稱的.h 和.m檔案如下
第二部:把需要封裝的類拖到工程中來
然後選擇需要暴露出來的 .h 檔案, .m 檔案會自動編譯到 .a 檔案中
選擇真機裝置,然後 command+b 編譯, libmjrefresh.a 檔案從紅色變為黑色
就成功了, show in finder 就是需要的庫啦。
這裡需要注意的是: 選擇 真機執行的出來的是 真機執行需要的.a檔案, 只能執行在真機上, 跑模擬器就會報錯。
因為手機的cpu架構和電腦的不同造成的。。
解決方法:
合併真機command +b出來的.a 和模擬器command +b出來的.a
合併靜態庫讓模擬器和真機都能用的招
lipo -create /users/gti/desktop/debug-iphoneos/libjtk.a /users/gti/desktop/debug-iphonesimulator/libjtk.a -output /users/gti/desktop/libjtk.a
lipo -create :固定的命令
/users/gti/desktop/debug-iphoneos/libjtk.a 真機跑出來的.a檔案的位置 這位置選中.a 檔案直接拖到終端就ok
/users/gti/desktop/debug-iphonesimulator/libjtk.a 模擬器跑出來的.a檔案的位置
output 固定命令列
/users/gti/desktop/libjtk.a 合併ok 的最終檔案的位置以及名字
如何使用 .a
直接將 .a 、 .h 、資源檔案拖拽到其他專案中即可
iOS開發之靜態庫
最近在與第三方支付平台對接的時候,接過來的文件demo裡含有.a靜態庫檔案,但是因為庫包出錯,需要修改,才發現.a靜態庫檔案不可修改,所以上網進行了了解學習。現在跟大家分享一下學習的心得。framework 檔案和.a 檔案都是庫檔案 那什麼是庫檔案 庫是程式 的集合,是共享程式 的一種方式 根據源...
全面了解 iOS 靜態庫開發
全面了解 ios 靜態庫開發 1 全面了解 ios 靜態庫開發 1 靜態庫和動態庫 字尾不一樣,前者是.a,後者是.dylib 載入方式不一樣,前者在鏈結時被複製到可執行 可以存在多份,後者是執行時被載入到記憶體,只會存在乙份 2 打包debug版靜態庫,分為給模擬器使用還是真機使用,還分為是deb...
iOS開發之靜態庫的製作
當你需要和別人分享 但又不想讓別人看到你內部的實現時就需要製作靜態庫,通常用於第三方sdk 下面就分享一下製作靜態庫 a 的過程 1 開啟xcode,新建workspace 2 隨便給workspace取個名字 3 在workspace新建工程 4 選擇靜態庫 5 點選下一步 6 刪除系統自動幫你生...