infer 項(xiàng)目靜態(tài)分析

使用infer進(jìn)行項(xiàng)目靜態(tài)分析

項(xiàng)目不使用.xcworkspace時(shí)使用,xxx為項(xiàng)目名,下同

infer -- xcodebuild -target xxx -configuration Debug -sdk iphonesimulator 晴股,如果項(xiàng)目有使用第三方會(huì)報(bào)錯(cuò)

error

帶有Pods帶,需要使用帶有分析第三方的命令

infer run -- xcodebuild -workspace xxx.xcworkspace -scheme xxx -configuration Debug -sdk iphonesimulator

分析成功

如果第三方文件較多,分析會(huì)較為耗時(shí)部服,可以在工程目錄下新建 .inferconfig 文件,可以過(guò)濾掉Pods文件夾下的第三方庫(kù), skip-analysis-in-path是一個(gè)數(shù)組, 想要過(guò)濾其他文件, 只需要增加路徑即可如下圖

.inferconfig

以上命令默認(rèn)都是增量分析拗慨,可使用:xcodebuild -target xxx -configuration Debug -sdk iphonesimulator clean饲宿,保證增量到非增量轉(zhuǎn)換。

分析成功后胆描,在工程目錄下會(huì)生成build和infer-out文件夾,查看infer-out下bugs.txt或者report.json處理你的問(wèn)題吧


出現(xiàn)常見(jiàn)錯(cuò)誤類(lèi)型有:

1瘫想、NULL_DEREFERENCE:空指針的情況。

1.傳參為0的情況下昌讲。例如代碼中国夜,在調(diào)用showAlertViewA()時(shí),將tag傳參為0,infer檢測(cè)此處傳0短绸,判斷為一個(gè)NULL空指針车吹,所以爆出警告。這里可以理解為誤報(bào)醋闭,不會(huì)出現(xiàn)問(wèn)題窄驹。

2.通過(guò)malloc,calloc,realloc等函數(shù)申請(qǐng)內(nèi)存,當(dāng)內(nèi)存不足時(shí)证逻,有可能會(huì)在該函數(shù)中返回NULL乐埠,如果沒(méi)有做NULL的判斷,則警告

3.在創(chuàng)建NSArray或者NSDictionary時(shí)囚企,傳入的參數(shù)有可能會(huì)nil丈咐。由于NSArray與NSDictionary不接受空指針,所以在對(duì)其addObject或者setObject:forKey:?時(shí)需要進(jìn)行判斷一下是否為nil

2龙宏、MEMORY_LEAK:內(nèi)存泄漏:項(xiàng)目代碼全面啟動(dòng)了ARC進(jìn)行內(nèi)存管理棵逊,在OC層沒(méi)有掃描出內(nèi)存泄露。目前掃描出的內(nèi)存泄露問(wèn)題都是使用了malloc或者ralloc等c語(yǔ)言內(nèi)存申請(qǐng)函數(shù)银酗,在函數(shù)提前return前沒(méi)有及時(shí)free

3辆影、RESOURCE_LEAK:資源泄漏

4、ASSIGN_POINTER_WARNING:由于在mrc時(shí)代黍特,沒(méi)有weak指針蛙讥,所以一些view的屬性聲明是_、unsafe__unretain__的形式衅澈,在arc中键菱,這個(gè)屬性被判斷為assign,需要將其修改為weak或者strong

5、DIRECT_ATOMIC_PROPERTY_ACCESS:在代碼中使用了使用了一個(gè)atomic的成員變量经备,infer建議我們將atomic修改為nonatomic拭抬。由于OC中,屬性會(huì)被默認(rèn)設(shè)置為atomic屬性侵蒙,我們需要顯示將屬性聲明為nonatomic造虎。

6、IVAR_NOT_NULL_CHECKED:在代碼中調(diào)用block纷闺,運(yùn)行代碼時(shí)算凿,沒(méi)有做判空處理。即需要改動(dòng)為犁功,if(block){block()}

7氓轰、BAD_POINTER_COMPARISON:沒(méi)有判斷一個(gè)NSNumber類(lèi)型的對(duì)象是不是空?

8浸卦、TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION:代碼中使用了cookie的value署鸡。可以理解為誤報(bào)

9限嫌、PARAMETER_NOT_NULL_CHECKED:傳參時(shí)沒(méi)有判斷是否為null靴庆,加一次判斷就可以了

10、STRONG_DELEGATE_WARNING:將一個(gè)delegate屬性設(shè)置為strong的類(lèi)型怒医。

11炉抒、PREMATURE_NIL_TERMINATION_ARGUMENT:沒(méi)有判斷是否為空

12、REGISTERED_OBSERVER_BEING_DEALLOCATED:創(chuàng)建一個(gè)對(duì)象后稚叹,監(jiān)聽(tīng)了某些通知焰薄,但是沒(méi)有在dealloc中釋放該通知妻柒。項(xiàng)目中出現(xiàn)這種問(wèn)題的類(lèi)橄抹,基本都是單例,不會(huì)被銷(xiāo)毀裆馒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末僚稿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蟀伸,更是在濱河造成了極大的恐慌蚀同,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啊掏,死亡現(xiàn)場(chǎng)離奇詭異蠢络,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)迟蜜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)刹孔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人娜睛,你說(shuō)我怎么就攤上這事髓霞∝远茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵方库,是天一觀的道長(zhǎng)结序。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纵潦,這世上最難降的妖魔是什么徐鹤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮邀层,結(jié)果婚禮上返敬,老公的妹妹穿的比我還像新娘。我一直安慰自己寥院,他們只是感情好劲赠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著只磷,像睡著了一般经磅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钮追,一...
    開(kāi)封第一講書(shū)人閱讀 51,573評(píng)論 1 305
  • 那天预厌,我揣著相機(jī)與錄音,去河邊找鬼元媚。 笑死轧叽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刊棕。 我是一名探鬼主播炭晒,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甥角!你這毒婦竟也來(lái)了网严?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嗤无,失蹤者是張志新(化名)和其女友劉穎震束,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體当犯,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垢村,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚎卫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘉栓。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侵佃,到底是詐尸還是另有隱情麻昼,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布趣钱,位于F島的核電站涌献,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏首有。R本人自食惡果不足惜燕垃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望井联。 院中可真熱鬧卜壕,春花似錦、人聲如沸烙常。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蚕脏。三九已至侦副,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驼鞭,已是汗流浹背秦驯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挣棕,地道東北人译隘。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像洛心,于是被迫代替她去往敵國(guó)和親固耘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355