干了這么長時間很少貢獻東西今天貢獻一篇文章,今天寫一章關于靜態庫.a文件的創建.
好了廢話不多說,靜態庫和動態庫的區別自己查,我只負責說一下如何創建一個靜態庫
1、創建一個新的Xcode工程StaticProject
2.在里面創建一個類用于測試使用
3.添加公開的頭文件,即你想讓別人看到的頭文件 你都需要在copyfile中添加.h
4、修改配置
我們需要把Build Active Architecture Only修改為NO,否則生成的靜態庫就只支持當前選擇設備的架構。
5、然后編譯
我們分別選擇Generic iOS Device和任意一個模擬器各編譯(command+b)一次,編譯完后,我們會看到工程中Products文件夾下的libTest.a由紅色變成了黑色,然后show in finder,看看生成的文件:
我們可以看到以下兩個文件一個是剛才跑模擬器的一個剛才跑Generic iOS Device的
接下來看一下靜態庫支持的框架
(1)打開終端切換到當前的目錄(cd 后面直接將文件拖進來就可以了然后回車)
然后輸入:lipo -info+靜態庫名稱
我們看到,Debug-iphoneos里面的靜態庫支持的架構有armv7和arm64所以它只能用于真機,在模擬器上會報錯。Debug-iphonesimulator里面的靜態庫支持的架構有i386和x86_64,所以它只能用于模擬器,在真機上會報錯。
如果想要讓模擬器和真機通用一個靜態庫,我們可以使用終端命令來實現。命令格式:lipo -create 第一個.a文件的絕對路徑 第二個.a文件的絕對路徑 -output 最終的.a文件路徑:
于是就出來了一個myLib 這個myLib是真機模擬器通用的
接下來創建一個文件夾將最終生成的.a文件和.h文件放到一起我以后我們就可以使用了這里面的.h是從上面Debug-iphoneos文件夾下考出來的別不知道從哪來的好了這就可以了你已經創建了一個.a的靜態庫
6.接下來就是使用了
使用就比較簡單了創建一個新的工程將MyLib導入工程導入頭文件就可以使用了
好了完美運行,下次再寫就寫靜態庫.frameWork的創建以及多工程聯編這個架構模式歡迎收藏點贊.
感謝樂視老大哥皓哥