技術(shù)璀璨,初探 framework泣侮!

簡單介紹下SDK 的三個層次即彪。

業(yè)務(wù)層 :應(yīng)用方使用相關(guān)API。

銜接層 :保證業(yè)務(wù)層調(diào)用的API不做修改活尊,兼容實現(xiàn)層邏輯隶校。

實現(xiàn)層 :framework ,增加代碼的安全性蛹锰,核心業(yè)務(wù)的保密深胳。


一、為什么做這個framework铜犬?



需求:阿里原有framework包大小為8M(包含的內(nèi)容比較全面)舞终,打包后大概600k,我們需要把整個app的包大小縮減癣猾,那么就需要從每個地方去優(yōu)化敛劝。


二、為什么要有銜接層 纷宇?



要修改底層的framework攘蔽,還要兼顧業(yè)務(wù)方的調(diào)用,那么就需要有這樣一個銜接層呐粘。不然每次修改framework满俗,業(yè)務(wù)方就要修改調(diào)用的API,會無形的增加業(yè)務(wù)方的使用成本作岖。


三唆垃、為什么要有初始化 ?



最開始的設(shè)計思路是痘儡,input 一個字符串辕万,output 一個字符串即可。

+ (DDSecurity *)sharedInstance;

/*
 *  input   需要加密的數(shù)據(jù)
 *  return  簽名后字符串
 */
- (NSString *)sign : (NSString *)input;

優(yōu)化后:

+ (DDSecurity *)sharedInstance;

/*
 *  初始化數(shù)據(jù)
 */
- (NSInteger )initWithFile;

/*
 *  input   需要加密的數(shù)據(jù)
 *  return  簽名后字符串
 */
- (NSString *)sign : (NSString *)input;

初始化好處:只調(diào)用一次,把重復(fù)的事情放在初始化里面渐尿,這樣只需要初始化一次醉途,可以減少內(nèi)存消耗。


四砖茸、iOS 上如何實現(xiàn) Framework 隘擎?



流程參考<和玨貓>的簡書 iOS封裝功能生成 .framework ,有詳細的介紹凉夯。


五货葬、framework 遇到的問題 ?



1.Reason: image not found

 dyld: Library not loaded: @rpath/SecurityGuard.framework/SecurityGuard
 Referenced from: /Users/didi/Library/Developer/CoreSimulator/Devices/
 14A1EFC9-31FD-4FF8-A3A2-64A254FAE27A/data/Containers/Bundle/Application/
 60645B0E-F62C-400B-9AA7-53742B0E0B8C/321321.app/321321
 Reason: image not found

一頓搜索之后發(fā)現(xiàn)這個問題得產(chǎn)生是因為引用得一些framework只能存在于高版本得sdk中劲够,但是震桶,如果編譯到低版本的ios就會發(fā)生這樣的問題,我的真機是iOS6的版本的征绎,GameController.framework可能高于這個版本蹲姐,這里只需要在對應(yīng)的target下的Build Phases標簽里,找到Link Binary With Libraries人柿,在里面找到GameController.framework柴墩,把status由Required 修改成Optional,然后再運行就OK了顷扩。其他的framework報錯也適用拐邪,只需要修改對應(yīng)的framework的status就行了。

2.遇到 Missing submodule 'SecurityGuard.Security'

#import <UIKit/UIKit.h>

//! Project version number for SecurityGuard.
FOUNDATION_EXPORT double SecurityGuardVersionNumber;

//! Project version string for SecurityGuard.
FOUNDATION_EXPORT const unsigned char SecurityGuardVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <SecurityGuard/PublicHeader.h>

#import <SecurityGuard/DDSecurity.h>

在生成framework 過程中隘截,一定要把你用到的庫包涵在.h中扎阶,不然調(diào)用方引用不到。

3.在模擬器5上運行報錯婶芭,其它模擬器都好使东臀。

在Architectures下增加armv7s,將Build Active Architecture Only 設(shè)置為NO。

4.需要用到的兩個命令

1.lipo   -create      合并模擬器和真機
2.lipo   -info          查看framework包含的架構(gòu)

合并輸出過程.png
查看framework支持的架構(gòu).png
六犀农、涉及到的算法 惰赋?



Base64 算法
MD5 算法
異或 算法
SHA1 算法
HmacSHA1 算法
DES 算法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呵哨,隨后出現(xiàn)的幾起案子赁濒,更是在濱河造成了極大的恐慌,老刑警劉巖孟害,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拒炎,死亡現(xiàn)場離奇詭異,居然都是意外死亡挨务,警方通過查閱死者的電腦和手機击你,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門玉组,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丁侄,你說我怎么就攤上這事惯雳。” “怎么了鸿摇?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵石景,是天一觀的道長。 經(jīng)常有香客問我户辱,道長鸵钝,這世上最難降的妖魔是什么糙臼? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任庐镐,我火速辦了婚禮,結(jié)果婚禮上变逃,老公的妹妹穿的比我還像新娘必逆。我一直安慰自己,他們只是感情好揽乱,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布名眉。 她就那樣靜靜地躺著,像睡著了一般凰棉。 火紅的嫁衣襯著肌膚如雪损拢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天撒犀,我揣著相機與錄音福压,去河邊找鬼。 笑死或舞,一個胖子當(dāng)著我的面吹牛荆姆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播映凳,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼胆筒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诈豌?” 一聲冷哼從身側(cè)響起仆救,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矫渔,沒想到半個月后彤蔽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡蚌斩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年铆惑,在試婚紗的時候發(fā)現(xiàn)自己被綠了范嘱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡员魏,死狀恐怖丑蛤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撕阎,我是刑警寧澤受裹,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站虏束,受9級特大地震影響棉饶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜镇匀,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一照藻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汗侵,春花似錦幸缕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雪猪,卻和暖如春栏尚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背只恨。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工译仗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坤次。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓古劲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缰猴。 傳聞我的和親對象是個殘疾皇子产艾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容