最近在做乙個小專案,需要給客戶乙個demo測試,有一部分核心**暫時不想讓客戶知道,就想到了打包成framework或.a庫。庫有兩種:
靜態庫和動態庫的區別
使用靜態庫的好處
使用動態庫的好處
靜態庫的使用場景
ios裝置的cpu架構 模擬器
真機
沒有armv64下面言歸正傳,做點正事
1.建立乙個新的工程,選擇下面這個模板:
完成 2.我這裡就在test操作了(親,你打包.a的時候,可以刪除預設檔案,拉入自己想加入的任何檔案)
下面在建立乙個person類
3.選擇需要公開的標頭檔案
4.修改配置
5.編譯 選擇generic ios device
和任意乙個模擬器
各編譯一次,完成後,在工程的products
資料夾下的.a檔案從紅色程式設計了黑色。編譯成功,然後show in finder
。
可以看到真機與模擬器都生成了.a。裡面都有有我選擇公開的標頭檔案 這個時候,可以用命令lipo -info 靜態庫名字
來看下,支援的ios的cpu框架
6.合併靜態庫-讓模擬器和真機使用乙個靜態庫 命令如下:lipo -create第乙個.a檔案的絕對路徑 第二個.a檔案的絕對路徑 -output 最終的.a檔案路徑
這個生成的libtest.a
,就是支援真機和模擬器的靜態庫了。建立乙個資料夾,把.a和標頭檔案拖進去,這個資料夾就是我們所需要的。
為了開發方便,我們可以使用生成的通用靜態庫,但是上線的時候只匯入真機的,這樣工程的體積也會小一些。新建乙個工程,把我們的靜態庫拖進去,匯入標頭檔案。
###.framework靜態庫 1.xcode建立乙個新工程,需要選擇這個cocoa touch framework
這個模板
2.建立person,也是輸入名字和年齡,和.a一樣
#####注意事項:
uibutton *button = [uibutton buttonwithtype:uibuttontypecustom];
//拿到路徑
nsstring *path = [[nsbundle mainbundle] pathforresource:@"bundle" oftype:@"bundle"];
//設定
uiimage *image = [uiimage imagenamed:@"delete"
inbundle:[nsbundle bundlewithpath:path] compatiblewithtraitcollection:nil];
[button setimage:image forstate:uicontrolstatenormal];
複製**
3.選擇要公開的標頭檔案 這裡主要是讓使用者知道有哪些方法和標頭檔案可以使用
注意。要在這個檔案中引入需要公開的標頭檔案
這裡有乙個注意點,公開的標頭檔案中,#import的其他類也要公開,新增到public中,如果不想公開,就在標頭檔案用用@class的方式,在對應的.m中用#import方式4.修改配置
5.編譯 選擇generic ios device
和任意乙個模擬器
各編譯一次,完成後,在工程的products
資料夾下的.a檔案從紅色程式設計了黑色。編譯成功,然後show in finder
。
可以看到真機與模擬器都生成了.framework。裡面都有我們選擇公開的標頭檔案 這個時候,可以用命令lipo -info framework靜態庫檔案下二進位制檔案的名字
來看下,支援的ios的cpu框架
6.合併靜態庫-讓模擬器和真機使用乙個靜態庫 命令如下:lipo -create第乙個framework檔案下二進位制檔案的絕對路徑 第二個framework檔案下二進位制檔案的絕對路徑 -output 最終的二進位制檔案路徑
將合成的二進位制檔案拖進任何乙個framework,替換掉原來的,然後把這個新的framework拖進專案就可以使用了
新建乙個工程,把我們的靜態庫拖進去,匯入標頭檔案。然後呼叫person中的方法。
如果靜態庫中有category類,就要在使用靜態庫專案的配置中新增注釋:部分名詞摘自網路。雖然說,學到的都是我們的,但是也不要忘記他人。-objc
或者-all_load
如果建立的framework類中使用了.tbd,則專案中也要匯入.tbd動態庫
iOS 在framework中打包xib
廢話不多說,直接上圖 1 copy bundle resources 中加入相關xib 2 這裡是重點,呼叫的時候不能直接寫 objc view plain copy nsbundlemainbundle loadnibnamed yourxibname owner nil options nil ...
IOS 靜態庫和Framework區別
ios靜態庫和framework區別 一 什麼是庫?庫是共享程式 的方式,一般分為靜態庫和動態庫。二 靜態庫與動態庫的區別?靜態庫 鏈結時完整地拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。動態庫 鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體...
iOS庫 a與 framework區別
一 什麼是庫?庫是共享程式 的方式,一般分為靜態庫和動態庫。二 靜態庫與動態庫的區別?靜態庫 鏈結時完整地拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。動態庫 鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體。三 ios裡靜態庫形式?a和.fra...