Cocoapods 應(yīng)用——警告處理

為了強調(diào)組內(nèi)同學(xué)對 warning 的處理,強制將 warning 切成了 error,這樣為了保證項目可以編過简肴,大家不得不處理自己開發(fā)過程中遇到的 warning,暴力但很有效百侧。

關(guān)閉全局警告

組件化之后砰识,項目中除了基本的殼工程代碼,其他代碼都在 pod 中佣渴,可以采用 Podfile 的開關(guān)進(jìn)行處理辫狼。

...
platform :ios, '9.0'
project 'XXX'
inhibit_all_warnings!
...

inhibit_all_warnings! 就是屏蔽所有 pod 警告的全局開關(guān)。

打開部分 pod 的警告

如果去掉這一行(不調(diào)用對應(yīng)的 ruby 方法)辛润,就會造成所有引入的第三方庫的 warning 也都顯示出來了膨处,無論是查看 warning 還是處理,都不是很方便砂竖,所以真椿,這一行肯定是要保留的。

看過 cocoapods 源碼的同學(xué)都知道乎澄,pod 方法接收一個參數(shù)可以打開或關(guān)閉這一 pod 的 warning 開關(guān)突硝。

pod 'XXX', :git => 'xxxxx.git', :tag => 'xxx',  :inhibit_warnings => false

嗯,就是 :inhibit_warnings 這個參數(shù)了三圆,false :打開 warning狞换,true :屏蔽 warning

warning 切 error

這是關(guān)鍵了避咆,遇到編譯 error 的時候,大家不得不處理才能 run 自己的工程修噪,這也是這次讓大家重視 warning 處理的必殺技了查库。Podfile 中可以在所有的 pods 安裝完成后,通過鉤子方法給 target 設(shè)置 build settings黄琼,這里就包括warning 切 error 的選項了樊销。

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        # 編譯配置
        if config.name == 'Release'
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RELEASE=1'
        end 
        if config.name == 'Beta'
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'BETA=1'
        end
        
        # 預(yù)編譯宏
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'NS_BLOCK_ASSERTIONS'
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'COCOAPODS=1'

        # warning 切 error 的開關(guān)
        config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES'

        # 關(guān)閉部分 warning
        config.build_settings['WARNING_CFLAGS'] ||= '-Wno-nullability-completeness'
        config.build_settings['CLANG_WARN_STRICT_PROTOTYPES'] = 'NO'
        config.build_settings['GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS'] = 'NO'
        config.build_settings['CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS'] = 'NO'
        config.build_settings['CLANG_WARN_DOCUMENTATION_COMMENTS'] = 'NO'
        config.build_settings['GCC_WARN_UNUSED_VARIABLE'] = 'NO'
        config.build_settings['GCC_WARN_UNUSED_FUNCTION'] = 'NO'
        config.build_settings['CLANG_MIGRATOR_OBJC_DESIGNATED_INIT'] = 'NO'
        config.build_settings['CLANG_WARN_COMMA'] = 'NO'
        config.build_settings['CLANG_WARN_BOOL_CONVERSION'] = 'NO'
    end
    
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1'
        end
    end
end

其中,config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES' 就是 warning 切 error 的開關(guān)了脏款。
大家可能還會注意到围苫,上面的 Podfile 配置中還設(shè)置了關(guān)閉部分 warning 的開關(guān),是的撤师,有些 warning 還是沒有太大影響的剂府,不能對業(yè)務(wù)開發(fā)造成太大的干擾和影響,可以如此關(guān)閉掉剃盾。

常見的警告

下方鏈接羅列了一些 iOS 中常見的一些警告消息腺占,感謝原作者。
1)Semantic Warnings(語義警告)
2)Parser Warnings(解析器警告)
http://www.reibang.com/p/9652d3ae42a1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痒谴,一起剝皮案震驚了整個濱河市衰伯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌积蔚,老刑警劉巖意鲸,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尽爆,居然都是意外死亡怎顾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門漱贱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杆勇,“玉大人,你說我怎么就攤上這事饱亿⊙镣耍” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵彪笼,是天一觀的道長钻注。 經(jīng)常有香客問我,道長配猫,這世上最難降的妖魔是什么幅恋? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮泵肄,結(jié)果婚禮上捆交,老公的妹妹穿的比我還像新娘淑翼。我一直安慰自己,他們只是感情好品追,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布玄括。 她就那樣靜靜地躺著,像睡著了一般肉瓦。 火紅的嫁衣襯著肌膚如雪遭京。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天泞莉,我揣著相機與錄音哪雕,去河邊找鬼。 笑死鲫趁,一個胖子當(dāng)著我的面吹牛斯嚎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挨厚,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼孝扛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了幽崩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤寞钥,失蹤者是張志新(化名)和其女友劉穎慌申,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體理郑,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蹄溉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了您炉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柒爵。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冀膝,靈堂內(nèi)的尸體忽然破棺而出唁奢,到底是詐尸還是另有隱情,我是刑警寧澤窝剖,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站脊奋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏讶隐。R本人自食惡果不足惜最楷,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望烈评。 院中可真熱鬧犯建,春花似錦适瓦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贴浙。三九已至崎溃,卻和暖如春盯质,著一層夾襖步出監(jiān)牢的瞬間呼巷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留啤咽,地道東北人宇整。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓霸饲,卻偏偏與公主長得像臂拓,于是被迫代替她去往敵國和親胶惰。 傳聞我的和親對象是個殘疾皇子孵滞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,696評論 0 3
  • 項目組件化、平臺化是技術(shù)公司的共同目標(biāo)蟋滴,越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項目架構(gòu)...
    swu_luo閱讀 21,723評論 0 39
  • CocoaPods 是開發(fā) OS X 和 iOS 應(yīng)用程序的一個第三方庫的依賴管理工具简逮。利用 CocoaPods散庶,...
    寶山瀟灑哥閱讀 4,033評論 0 1
  • CocoaPods 是什么? CocoaPods 是一個負(fù)責(zé)管理 iOS 項目中第三方開源庫的工具须教。CocoaPo...
    朝洋閱讀 25,678評論 3 51
  • 第一乐疆,windows是為了設(shè)計的跟mac不一樣挤土,才把按鈕放在右上角的仰美。windows才是奇葩儿礼。 第二蜘犁,用慣mac系...
    殘品經(jīng)理H閱讀 2,322評論 0 0