国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

iOS 靜態庫開發

移動開發
在企業開發中,一些核心技術或者常用框架,出于安全性和穩定性的考慮,不想被外界知道,所以會把核心代碼打包成靜態庫,只暴露頭文件給程序員使用(比如:友盟、百度地圖等第三方的sdk)

簡介

在企業開發中,一些核心技術或者常用框架,出于安全性和穩定性的考慮,不想被外界知道,所以會把核心代碼打包成靜態庫,只暴露頭文件給程序員使用(比如:友盟、百度地圖等第三方的sdk)

靜態庫和動態庫的存在形式

靜態庫:.a 和 .framework
動態庫:.dylib 和 .framework

靜態庫和動態庫的區別

靜態庫:鏈接時,靜態庫會被完整地復制到可執行文件中,被多次使用就有多份冗余拷貝
動態庫:鏈接時不復制,程序運行時由系統動態加載到內存,供程序調用,系統只加載一次,多個程序共用,節省內存

注意:項目中如果使用了動態庫,會蘋果拒接

靜態庫文件的版本(4種)

  • 真機-Debug版本
  • 真機-Release版本
  • 模擬器-Debug版本
  • 模擬器-Release版本

Debug(調試)版本

1.含完整的符號信息,以方便調試
2.不會對代碼進行優化

Release(發布)版本

1.不會包含完整的符號信息
2.的執行代碼是進行過優化的
3.的大小會比Debug版本的略小
4.在執行速度方面,Release版本會更快些(但不意味著會有顯著的提升)

所以我們一般開發中都打包Release(發布)版本,提供外界

設備的CPU架構簡介(補充知識)

模擬器:

4s~5 : i386
5s~6plus : x86_64

真機:

3gs~4s : armv7
5~5c : armv7s (靜態庫只要支持了armv7,就可以跑在armv7s的架構上)
5s~6plus : arm64

制作靜態庫 - Debug版

1.新建項目
2.添加靜態庫并命名

3.需要打包到進靜態庫的代碼,放在這個文件夾內

4.重新創建測試類(HSCalculate),提供外界計算兩個數和的方法

HSCalculate.h

  1. @interface HSCalculate : NSObject 
  2. + (NSInteger)sumNum1:(NSInteger)num1 num2:(NSInteger)num2; 
  3. @end 

HSCalculate.m

  1. #import "HSCalculate.h" 
  2.  
  3. @implementation HSCalculate 
  4.  
  5. + (NSInteger)sumWithNum1:(NSInteger)num1 num2:(NSInteger)num2 
  6.     return num1 + num2; 
  7.  
  8. @end 

5.需要暴露給外界的文件(接口)

6.打包支持模擬器和真機的靜態庫(分別選擇真機和模擬器運行,就會生成對應的靜態庫)

7.查看打包好的靜態庫

兩個文件夾,里面的.a文件就是打包好的靜態庫

Debug-iphoneos : 真機
Debug-iphonesimulator:模擬器

可用下面命令查看靜態庫支持的cpu架構(可查看上面描述的cpu架構類型)

  1. lipo -info xxx.a 

分別查看打包好的模擬器與真機的靜態庫所支持的cpu架構

你會發現模擬器的靜態庫少了4s~5 : i386架構

原因:

下面Debug:Yes表示只編譯選中模擬器對應的架構,No則為編譯所有模擬器支持的cup架構(Debug的Yes狀態改為No即可)

修改完后,重新編譯:

8.在本項目對該靜態庫進行調試,ViewController.m導入HSCalculate.h,測試運行,你會發現報錯了

  1. #import "ViewController.h" 
  2. #import "HSCalculate.h" 
  3.  
  4. @interface ViewController () 
  5.  
  6. @end 
  7.  
  8. @implementation ViewController 
  9.  
  10. - (void)viewDidLoad { 
  11.     [super viewDidLoad]; 
  12.  
  13.     NSInteger result = [HSCalculate sumWithNum1:23 num2:25]; 
  14.     NSLog(@"result: %d", result); 
  15.  
  16. @end 

報錯:

原因:

需要導入靜態庫(編譯即可運行成功)

9.同時支持真機與模擬器的靜態庫(需要合并)

真機和模擬器的靜態庫,是不一樣的,不能同時適用在真機和模擬器上,但要滿足這要求的話,要對編譯好的兩個靜態庫進行合并

合并好壞:

好:開發過程中既可以在真機上調試,也可以在模擬器上調試
壞:如果靜態庫太大,合并打包后,會非常大,因此很多第三方的靜態庫的.a是區分版本的

合并產生新的靜態庫:

  1. lipo -create Debug-iphoneos/xxx.a Debug-iphonesimulator/xxx.a -output xxx.a 

10.把合并好的靜態庫和外界訪問的文件拉入到新工程,即可使用(inc文件自己建立的)

Snip20150830_26.png

新建工程測試:

Snip20150830_28.png

制作靜態庫 - Release版

跟Debug版步驟一樣,只不過在編譯時,改下面的選項即可


制作靜態庫 - .framework版

步驟跟制作.a靜態庫,基本一致,但要注意的下面幾點:

1.選擇framework

Snip20150830_32.png

2.編譯時,默認制作成動態庫,要在下面選擇

Snip20150830_33.png

3.合并靜態庫時,是選.framework文件里的libstaticlib文件

合并:

刪除libstaticlib,libCalculateTool拉入libstaticlib.framework項目中,libstaticlib.framework靜態庫制作完成

責任編輯:倪明 來源: 簡書
相關推薦

2015-09-11 11:02:23

ios靜態庫開發

2013-04-08 10:27:59

iOSXcode制作靜態庫

2011-07-22 16:15:11

IOS 靜態類

2011-07-21 11:05:18

iOS 族譜 Cocoa

2011-09-06 16:30:32

iOS系統靜態鏈接庫

2013-07-25 13:30:35

iOS開發學習讀取照片庫

2011-08-22 15:43:08

IOS開發數據庫

2011-08-22 16:08:46

IOS開發數據庫

2015-02-11 18:02:59

iOS源碼Swift圖表庫

2013-04-01 10:49:51

iOS開發sqlite數據庫

2014-05-13 10:12:17

iOS開發開源類庫

2013-07-21 18:04:22

ASIHttpRequiOS開發

2014-07-30 14:37:00

FacebookiOS開源庫

2011-06-09 11:11:35

QT 靜態庫 動態庫

2010-01-07 17:36:38

Linux靜態庫

2019-04-12 08:10:33

iOS靜態分析Xcode

2010-03-04 10:17:57

Linux動態庫

2013-09-12 15:02:54

iOS開發者

2011-08-10 15:36:26

iPhone靜態庫控件

2014-03-06 15:49:36

iOS開源庫匯總
點贊
收藏

51CTO技術棧公眾號

欧美伦理视频在线观看| 第一福利在线视频| 裸体一区二区| 91麻豆国产精品| 欧美色资源站| 欧美夫妻性生活xx| 成人在线网站| 日韩国产欧美区| 国产三区在线观看| 精品视频色一区| 最全影音av资源中文字幕在线| 亚洲欧洲性图库| 亚洲欧美日韩在线| 亚洲少妇第一页| bt7086福利一区国产| 天天干天天操天天干天天操| 日本中文字幕一区二区有限公司| 国产精品三区四区| 国产人成精品一区二区三| 国模精品一区二区三区| 亚洲一区二区三区高清| 久久综合九色综合网站| 国产精品sm| 国产伦精品一区二区三区视频孕妇 | 丰乳肥臀在线| 久久久久国产精品一区二区| 在线网址91| 91精品国产91久久久久福利| 精品国产亚洲一区二区三区在线| 成年人网站91| 大片在线观看网站免费收看| 国产成人免费高清| 国产精品久久中文字幕| 久久精品视频免费| 亚洲天堂av线| 亚洲一区日韩精品中文字幕| 亚洲女人天堂在线| 欧美日韩亚洲综合| aa视频在线观看| 国产一区二区三区直播精品电影| 97色婷婷成人综合在线观看| 久久久视频免费观看| 国产最新精品| 国产精品久久久久久久久婷婷| 久久精品一区二区国产| 久久久久久久久网| 国产精品国模大尺度视频| 中文字幕乱在线伦视频乱在线伦视频| 精品视频色一区| 日韩色淫视频| 国产成人精品久久二区二区91| 亚洲影视一区| 相泽南亚洲一区二区在线播放 | 久草在线中文888| 欧美性猛交xxxx乱大交| 日本三级在线播放完整版| 国产视频丨精品|在线观看| 亚洲精品观看| 91久久国产综合久久91精品网站 | 国产精品久久久久久久久免费看| 亚洲色图网站| 中文字幕一区二区三区有限公司 | 69久久久久久| 精品视频在线免费观看| 国产一区二区主播在线| 欧美亚洲午夜视频在线观看| 亚洲福利一区| 九一免费在线观看| 亚洲一区二区三区四区中文字幕| 久cao在线| 欧美精品激情在线观看| 亚洲三级国产| 亚洲成人福利在线观看| 91精品国产福利| 国产在线播放精品| 日韩在线三级| 亚洲午夜国产一区99re久久| 涩涩涩视频在线观看| 国产日韩精品在线播放| 国产乱人伦偷精品视频免下载| 天堂资源在线观看| 亚洲天堂影视av| 午夜国产精品视频| 成人羞羞国产免费网站| 欧美精品自拍偷拍| 国产精品日韩精品在线播放| 久久久com| 亚洲免费在线电影| 日本免费一区二区三区四区| 444亚洲人体| 国产精品视频免费| 理论片午夜视频在线观看| 国产在线a不卡| 久久久亚洲国产美女国产盗摄| 黄色在线免费| 成人网页在线免费观看| 久久久亚洲午夜电影| missav|免费高清av在线看| 国产精品永久在线| 国产无遮挡一区二区三区毛片日本| 色呦呦在线播放| 99久久自偷自偷国产精品不卡| 国产精品乱人伦一区二区| 密臀av在线| 产国精品偷在线| 亚洲一区二区三区不卡国产欧美| 欧美一区在线观看视频| 91免费网站视频| 欧美精品久久天天躁| 50路60路老熟妇啪啪| 日韩一区二区三区在线观看| 欧美一区精品| 中文天堂在线观看| 欧美一二三视频| 91免费看`日韩一区二区| freexxx性亚洲精品| 国产在线播放一区二区| 亚洲国产欧美另类丝袜| 懂色av一区二区| 熟妇人妻va精品中文字幕| 国产亚洲欧洲高清| 国产毛片精品国产一区二区三区| 性欧美videos高清hd4k| 国产一区二区三区四区hd| 日韩欧美国产激情| 亚洲精品成人无限看| 在线播放av片| 成人h视频在线观看播放| 一区二区三区在线高清| 男人的天堂久久| 蜜臀av免费观看| 欧美xxxx14xxxxx性爽| 97久久人人超碰| 日韩毛片免费看| 国产美女网站在线观看| 精品国内产的精品视频在线观看| 成人一区在线看| www.久久.com| 波多野结衣综合网| 精品国产一区二区三区在线观看 | 欧美日韩国产影院| 亚洲欧洲中文字幕| 国产高清免费av在线| www 成人av com| 欧美乱妇15p| 日韩精品成人一区二区三区| cao在线视频| 黄页网站大全在线观看| 久久久亚洲精选| 亚洲国产sm捆绑调教视频| 久久久久久久久久久妇女| av中文字幕一区二区三区| 久久免费一区| 日韩av在线不卡| 久久嫩草精品久久久久| 超碰97久久| 视频三区在线观看| 欧洲成人一区二区| 中文字幕精品在线| 国产精品人人做人人爽人人添| 日韩毛片视频| 亚洲婷婷噜噜| 精品久久一二三| 欧美寡妇偷汉性猛交| 亚洲一二三区在线观看| 日本在线视频www| av手机免费观看| 亚洲色图第三页| 亚洲先锋成人| 日本高清在线观看视频| 欧美日韩国产精品专区 | 97偷自拍亚洲综合二区| 成年人在线看| 国产高清免费在线| 国内伊人久久久久久网站视频 | 亚洲成av人影院在线观看网| 国产情侣久久| 成人免费一区| 波多野结衣在线| 日韩影视精品| 久久久久久亚洲精品不卡| 色国产精品一区在线观看| 国产美女久久久久| 曰本一区二区三区视频| 欧美成人三区| 能在线观看的av网站| 999在线观看免费大全电视剧| 亚洲风情亚aⅴ在线发布| 国产午夜精品一区二区三区四区| 四虎8848精品成人免费网站| heyzo在线欧美播放| 成视人a免费观看视频| 神马影院我不卡午夜| 九色精品免费永久在线| 欧美日韩视频在线第一区| www.一区二区| 在线日韩视频| 青草伊人久久| 日韩精品分区| 在线黄色国产视频|