iOS中打包.a靜態庫

來源:互聯網
上載者:User

標籤:find   add   items   href   gem   product   ring   開始   開啟終端   

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.aEncryption.h檔案拖入工程,如:

ViewController.m引入Encryption.h標頭檔,調用Encryption.h暴露出來的加密方法,ViewController.m中代碼如下:

#import "ViewController.h"#import "Encryption.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    //調用Encryption中的加密方法    NSLog(@"-----%@", [Encryption md5EncryptWithString:@"hello"]);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end

調試視窗成功輸出列印資訊,如:

至此,.a靜態庫製作完畢!

 

 

 

 

 

 

 

 

 

 

參考連結: http://www.jianshu.com/p/add59ec093b6

iOS中打包.a靜態庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.