1.新建.a靜態庫工程
需要選擇Static Library靜態庫工程模板新建工程,如下圖:
新建靜態庫工程
實現需要打包的類,如下圖:
實現需要打包的類
2.設置需要暴露的頭文件
添加Headers, 步驟為:TARGET->Build Phases->點+號->New Headers Phase,如下圖:
然后找到Heaers(0 items)一欄, 點+號添加頭文件, 如下圖:
接著添加需要公開的頭文件Encryption.h, 如下圖:
添加完成后,Encryption.h會出現在Project一欄中, 需要手動拖入Public一欄中進行公開, 如下圖:
拖入后,Public中的頭文件就是公開的頭文件了, 如下圖:
3.設置Scheme
選擇Edit Scheme,如下圖:
選擇Debug模式,如下圖:
4.編譯模擬器版本的.a靜態庫
選擇模擬器,如下圖:
選擇模擬器后開始編譯,編譯成功后,Products中的libEncryption.a會由紅色變為黑色,如下圖:
5.編譯真機版本的.a靜態庫
選擇真機,如下圖:
選擇真機后開始編譯,編譯成功后,Products中的libEncryption.a也會由紅色變為黑色.
6.合并模擬版本和真機版本的靜態庫
選擇libEncryption.a,右鍵選擇Show in Finder,如下圖:
進入Finder后,可以看到編譯后的模擬器和真機版本的.a靜態庫,如下圖:
打開終端,使用命令行進行版本合并,具體格式為:
lipo -create"真機版本.a靜態庫路徑""模擬器版本.a靜態庫路徑" -output"合并后的.a靜態庫路徑"
注意中間要有空格.
在終端中輸入命令行,如下圖:
終端執行成功后會生成一個合并版本的.a靜態庫,如下圖:
7.測試靜態庫
新建工程,將libEncryption.a和Encryption.h文件拖入工程,如下圖:
在ViewController.m引入Encryption.h頭文件,調用Encryption.h暴露出來的加密方法,ViewController.m中代碼如下:
#import"ViewController.h"#import"Encryption.h"@interfaceViewController ()@end@implementationViewController- (void)viewDidLoad {? ? [super viewDidLoad];//調用Encryption中的加密方法NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);}- (void)didReceiveMemoryWarning {? ? [super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.}@end
調試窗口成功輸出打印信息,如下圖:
至此,.a靜態庫制作完畢!