ios開發靜態庫生成

2021-08-19 02:54:46 字數 1583 閱讀 8754

首先簡單說下哈: 庫就是程式**的集合,是共享**的一種方式

分為開源庫(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 刪除系統自動幫你生...