玩轉 iOS 開發:非腳本版本《模擬器與真機靜態 Framework 合成教程》

目錄


簡介

在咱們作iOS開發中, 有時候咱們會本身動手寫一些庫, 方便本身去調用, 可是咱們又不想這個庫的內部實現代碼被別人知道, 這個時候咱們就須要把這個庫打包成Framework或者是lib.a文件, 這裏咱們只作Framework的打包教程, lib.a的打包方式和Framework趨同差別, 若是有須要, 後面我再補上.git

###做者感言github

爲了寫這篇文章, 我翻查了許多資料, 都沒有找到詳細點的可參考資料, 外國的文章就不用說了, 光是看雞腸就頭暈了, 因此我本身總結了一些經驗, 整理了一番, 決定分享出來, 但願你們喜歡xcode

最後: 若是你有更好的建議或者對這篇文章有不滿的地方, 請聯繫我, 我會參考大家的意見再進行修改, 聯繫我時, 請備註Framework 若是以爲好的話, 但願你們也能夠打賞一下~嘻嘻~祝你們學習愉快~謝謝~app

Cain(羅家輝)學習

zhebushimengfei@qq.com: 聯繫方式測試

350116542: 騰訊QQspa


建立靜態包工程

在開始合成以前, 咱們確定是須要建立一個生成Framework的工程, 這裏推薦用WorkSpace來建立, 由於能夠方便咱們去測試Framework庫.3d

1

添加新的工程code

2

選擇建立Cocoa Touch Frameworkcdn

3

Framework命名, 喜歡啥名字, 本身看着辦唄, 我我的的習慣就是, 這個是什麼庫, 我就命名是啥

4

建立完以後, 咱們會看到Framework裏有一個頭文件, 頭文件裏有一堆不明因此的代碼, 這個時候咱們不須要管, 直接幹掉它

5

這樣子, 咱們就建立Framework完畢了, 下面讓咱們來建立一個測試類.


添加測試類

給這個測試類, 添加一個類方法

6

7

添加完測試類以後, 下面讓咱們來配置一下整個Framework工程, 讓它同時支持模擬器和真機.


配置靜態包工程

Xcode默認是會把Framework變成Debug模式, 這時候咱們須要去改爲Release模式

8

9

而後咱們去配置項目工程, 首先咱們來添加一個模擬器的支持

10

修改Framework最低支持iOS的版本, 我這裏最低支持的是iOS7

11

把默認的動態庫, 切換成靜態庫

12

配置須要暴露的.h文件

13

14

15

最後, 咱們在Test.h中導入TestClass.h, 固然, 咱們也不須要這麼作, 由於咱們已經在配置中暴露了TestClass.h文件, 因此不須要引用也是能夠的

16

這個時候, 咱們先來測試一下能不能生成Framework

17

18

19

最終測試, 是成功生成Framework庫的, 但這個是模擬器庫, 若是你須要支持真機的話, 那麼只要切換運行的選項就行了

20

這時候咱們再去查看文件夾, 就會有兩個Framework文件夾了

21


檢測靜態包

雖然咱們把Framework都打包好了, 可是咱們須要檢測一下是否符合咱們的需求, 這是咱們要打開Terminal, 而且輸入命令.

lipo -info (Framework二進制文件地址)複製代碼

22

檢測真機Framework包

23

檢測模擬器Framework包

24


合成真機與模擬器通用的靜態包

前面作了那麼多的事情, 就爲了如今這一步, 就是將模擬器與真機兩個Framework包合成一個通用的Framework包, 因爲我這裏沒有通用的Shell腳本, 只能用最笨的辦法合成兩個包了, 下面讓咱們一塊兒來看看.

打開終端輸入合成命令

lipo -create (真機Framework路徑) (模擬器Framework路徑) -output (真機/模擬器路徑)複製代碼

25

26

27

28

29

檢測合成後的通用Framework, 只有看到armv7 arm64 i386 x86_64這四個同時存在, 才真正的合成成功

30

31


注意!!!!!

這裏有一個注意事項, 有時候用lipo合成會報一個錯誤(我這裏沒有發現)

crun: error: active developer path (「/Applications/Xcode 2.app/Contents/Developer」) does not exist, use xcode-select --switch path/to/Xcode.app to specify the Xcode that you wish to use for command line developer tools (or see man xcode-select)複製代碼

這時候不要慌, 只要再輸入下面的命令, 輸入電腦密碼後, 而後再次運行合成Framework的命令, 就能夠合成了

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer複製代碼

測試靜態包

既然咱們那麼辛苦的合成了一個通用的Framework, 不用用, 怎麼對得起咱們的付出呢? 再次回到Workspace, 新建一個測試工程.

32

33

注意, 建立測試工程的時候, 不要新建到Framework的工程內

34

35

36

模擬器測試

37

38

真機測試

39

40


工程地址

GitHub地址: github.com/CainRun/Cre…


結束語

其實我這個方法比較麻煩一些, 畢竟我還沒找到怎麼用腳本去合成一個的方法, 若是找到這樣子方法的朋友但願能夠告知一聲, 感激涕零~~~

好啦, 教程到這裏就結束了, 謝謝你們的耐心觀看

相關文章
相關標籤/搜索