ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)
?創建靜態庫可能出于以下幾個理由:
1.你想將工具類代碼或者第三方插件快捷的分享給其他人而無需拷貝大量文件。
2.你想讓一些通用代碼處于自己的掌控之下,以便于修復和升級。
3.你想將庫共享給其他人,但不想讓他們看到你的源代碼。
?
Xcode6創建靜態庫詳解(Cocoa Touch Static Library)
?
一。創建靜態庫文件
打開Xcode, 選擇File ----> New ---> Project。 新建工程。
選擇iOS ----> Framework & Library ---> Cocoa Touch Static Library。
點擊Next。創建工程
?
?
?
工程目錄:
?
在頭文件StaticTest1.h中聲明方法
#import <Foundation/Foundation.h>@interface StaticTest1 : NSObject-(void)testStaticLib;@end
?
在StaticTest1.m中實現方法
#import "StaticTest1.h"@implementation StaticTest1-(void)testStaticLib {NSLog(@"This is a static library test"); }@end
二。創建通用靜態庫
通過xcode編譯出的靜態庫.a文件因為支持的cpu架構不同而分為iOS Device真機(armv7 arm64), iPhone5(i386),iPhone5s(x86_64)等版本,各個版本的.a文件不能混用,為了解決這個問題需要制作通用的靜態庫文件
?
依次使用iOS Device -> iPhone5 ->iPhone5s在Products目錄下生成libStaticTest1.a文件(文件名從紅色變為黑色既為編譯成功),必須先編譯iOS Device的.a文件,不然可能編譯不通過
?
通過右鍵.a文件->show in finder 找到文件libStaticTest1.a,依次重命名libStaticTest1s.a,libStaticTest15.a,libStaticTest15s.a, 名字可以隨意
?
使用mac下的終端命令行工具執行合并語句
lipo -create /Users/outeki/Desktop/libStaticTest1s.a /Users/outeki/Desktop/libStaticTest15s.a /Users/outeki/Desktop/libStaticTest15.a -output /Users/outeki/Desktop/test.a 文件路徑可以隨意放置,我將文件都放在了桌面上方便寫合并語句,注意三個文件路徑都用空格分開,/Users/outeki/Desktop/test.a既為生成的通用靜態庫文件?
如果你不知道每個.a文件支持的系統,可以通過lipo -info命令行來查看具體信息
lipo -info /Users/outeki/Desktop/libStaticTest1s.a
?如果需要將通用靜態庫分離成各個版本的靜態庫,可以參考文章?http://www.cnblogs.com/wengzilin/p/3800856.html
三。使用靜態庫
新建一個ios項目,并創建lib文件夾,將頭文件StaticTest1.h和test.a文件加入項目
?
在ViewController.m中import頭文件,即可使用頭文件中定義的方法了
#import "ViewController.h" #import "StaticTest1.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];StaticTest1 *test = [[StaticTest1 alloc] init];[test testStaticLib];}@end
測試輸出:
?
四.知識補充
到此靜態庫的介紹基本結束,如果你想自定義靜態庫的頭文件,可以在靜態庫工程中新建一個新的.h頭文件,用其替換掉copy file中配置的默認.h頭文件
添加Public.h頭文件
?
在public.h中引入可以公開的頭文件
#import "StaticTest1.h"
在配置文件Build Phases ->Copy File中修改公共接口文件 (Xcode5以前是Copy Header)
?
Command+R執行工程即可得到對應的.h和.a文件
?
?
?
如何使用workspace管理靜態庫源碼和原生app代碼將在下一篇討論
轉載于:https://www.cnblogs.com/anywherego/p/3934648.html
總結
以上是生活随笔為你收集整理的ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 连 mongodb
- 下一篇: 一道面试题,我自己的解法