iOS靜態庫的製做

iOS靜態庫的製做

背景知識

  • 庫能夠分爲靜態庫和動態庫,一般使用製做的都是靜態庫,使用本身製做的動態庫是不能上線的。
  • 靜態庫每次使用都會加載一次,比較耗資源。動態庫通常是系統公用的,只須要加載一次,也就是多個App使用的是同一個動態庫。
  • 靜態庫是由.a和.frameWork組成。動態庫是由 .dylib和.frameWork組成。
  • 本身製做的.frameWork 是靜態庫,系統使用的.framework是動態庫。
  • .a是一個二進制文件,是不能直接使用的。須要添加.h文件才能使用。
  • .a + .h +sourcefile = .framework

製做流程

.a製做

  • 建立Cocoa Touch Static Libraryios

  • 命名SDK的名稱
  • 刪除.m文件架構

  • 添加SDK的真正功能的類文件測試

  • 編輯SDK頭文件ui

  • 設置編譯全部架構 Build settings->Build Active Architecture Only --> NOcode

  • 編譯前切換成release模式blog

  • 分別在模擬機和真機上build一次,得到.a文件ip

  • 將真機得到的.a文件和模擬機得到的.a文件合併成一個新的.a文件
lipo -create
模擬器.a文件目錄  
真機.a文件目錄
-output  輸出目錄/文件
  • 將合併好的.a 文件和全部相關.h文件都放在同一個文件夾中,此時該文件夾就是一個能夠使用的靜態庫了資源

  • 測試,建立一個獨立項目,將該文件夾導入項目中使用。it

.framework製做

  • 建立Cocoa Touch frameworkio

  • 添加SDK的真正功能的類文件

  • 編輯SDK頭文件

  • 配置header

  • 配置庫鏈接類型

  • 設置編譯全部架構 Build settings->Build Active Architecture Only --> NO

  • 編譯前切換成release模式

  • 分別在模擬機和真機的狀態下build一下獲得兩個MyFramework.framework文件,每一個MyFramework.framework文件裏面包含MyFramework文件

  • 合併兩個MyFramework文件
lipo -create
模擬機的MyFramework.framework下的MyFramework路徑
真機的MyFramework.framework下的MyFramework路徑
-output  輸出目錄/文件
  • 將合併生成的MyFramework 替換掉真機MyFramework.framework下的MyFramework。此時真機下的MyFramework.framework就是製做完成了。
  • 測試,建立一個獨立的項目,將MyFramework.framework導入到項目中。添加Header search Path。

相關文章
相關標籤/搜索