iOS DoraemonKit 超強(qiáng)工具集合面板(底部附Swift接入流程)

先來感受一波

DoraemonKit.jpg

DoraemonKit.jpg

一顺呕、常用工具

  1. 【App 信息查看】 快速查看手機(jī)信息,App 信息掰茶,權(quán)限信息的渠道萤厅,避免去手機(jī)設(shè)置查找或者查看項(xiàng)目源代碼的麻煩橄抹;
  2. 【沙盒瀏覽】 App 內(nèi)部文件瀏覽的功能,支持刪除和預(yù)覽, 并且能通過 AirDrop 或者其他分享方式上傳到 PC 中祈坠,進(jìn)行更加細(xì)致的操作害碾;
  3. 【MockGPS】 App 能定位到全國各地,支持地圖地位和手動(dòng)輸入經(jīng)緯度赦拘;
  4. 【H5任意門】 開發(fā)測(cè)試同學(xué)可以快速輸入 H5 頁面地址慌随,查看該頁面效果;
  5. 【Crash查看】 方便本地打印出出現(xiàn) Crash 的堆棧躺同;
  6. 【子線程UI】 快速定位哪一些 UI 操作在非主線程中進(jìn)行渲染阁猜,避免不必要的問題;
  7. 【清除本地?cái)?shù)據(jù)】 一鍵刪除沙盒中所有數(shù)據(jù)蹋艺;
  8. 【NSLog】 把所有 NSLog 信息打印到UI界面剃袍,避免沒有開發(fā)證書無法調(diào)式的尷尬;
  9. 【Lumberjack】 每一條 CocoaLumberjack 的日志信息捎谨,都在在 App 的界面中顯示出來民效,再也不需要導(dǎo)出日志這么麻煩憔维。

二、性能檢測(cè)

  1. 【幀率】 App 幀率信息提供波形圖查看功能畏邢,讓幀率監(jiān)控的趨勢(shì)更加明顯业扒;
  2. 【CPU】 App CPU 使用率信息提供波形圖查看功能,讓 CPU 監(jiān)控的趨勢(shì)更加形象舒萎;
  3. 【內(nèi)存】 App 內(nèi)存使用量信息提供波形圖查看功能程储,讓內(nèi)存監(jiān)控的趨勢(shì)更加鮮明;
  4. 【流量】 攔截 App 內(nèi)部流量信息臂寝,提供波形圖展示章鲤、流量概要展示、流量列表展示咆贬、流量篩選败徊、流量詳情,對(duì)流量信息統(tǒng)一攔截素征,成為我們 App 中自帶的 “Charles”集嵌;
  5. 【卡頓】 鎖定 App 出現(xiàn)卡頓的時(shí)刻,打印出對(duì)應(yīng)的代碼調(diào)用堆棧御毅;
  6. 【自定義】 可以選擇你要監(jiān)控的選項(xiàng),包括 FPS怜珍、CPU端蛆、內(nèi)存、流量酥泛。監(jiān)控完畢之后今豆,把數(shù)據(jù)保存到本地,也可以導(dǎo)出來做更加細(xì)致的分析柔袁;
  7. 【Load 耗時(shí)】 Load 函數(shù)耗時(shí)是 iOS 啟動(dòng)性能優(yōu)化中重要的一項(xiàng)呆躲,該功能可以打印出所有 Load 函數(shù)的耗時(shí),給開發(fā)者以參考捶索。

三插掂、視覺工具

  1. 【顏色吸管】 方便設(shè)計(jì)師 UI 捉蟲的時(shí)候,查看每一個(gè)組件的顏色值是否設(shè)置正確腥例;
  2. 【組件檢查】 可以抓取任意一個(gè)UI控件辅甥,查看它們的詳細(xì)信息,包括控件名稱燎竖、控件位置璃弄、背景色、字體顏色构回、字體大邢目椤疏咐;
  3. 【對(duì)齊標(biāo)尺】 參考 Android 系統(tǒng)自帶測(cè)試工具,能夠?qū)崟r(shí)捕獲屏幕坐標(biāo)脐供,并且可以查看組件是否對(duì)齊浑塞;
  4. 【元素邊框線】 繪制出每一個(gè) UI 組件的邊框,對(duì)于組件布局有一定的參考意義患民。

DoraemonKit如何使用

1缩举、cocoapods依賴

image.png
    ####  Debug調(diào)試相關(guān) ####
def debugTool
  # debug工具
  pod 'DoraemonKit/Core', '~> 3.0.4', :configurations => ['Debug'] #必選
#  pod 'DoraemonKit/WithGPS', '~> 3.0.4', :configurations => ['Debug', 'RunDebug'] #可選
  pod 'DoraemonKit/WithLoad', '~> 3.0.4', :configurations => ['Debug'] #可選
#  pod 'DoraemonKit/WithLogger', '~> 3.0.4', :configurations => ['Debug', 'RunDebug'] #可選
  pod 'DoraemonKit/WithDatabase', '~> 3.0.4', :configurations => ['Debug'] #可選
#  pod 'DoraemonKit/WithMLeaksFinder', '~> 3.0.4', :configurations => ['Debug', 'RunDebug'] #可選 //xcode升級(jí)到12.5報(bào)錯(cuò)
end

Core subspec作為核心,必須引入匹颤。

如果你的日志是基于CocoaLumberjack仅孩,那你也可以引入WithLogger subspec。

MockGPS存在一些兼容性問題(絕大部分情況是好的印蓖,問題詳見https://github.com/didi/DoraemonKit/issues/35), 如果你的app接入MockGPS存在問題的話辽慕,可以不用引入WithGPS subspec。

tip:只在Debug環(huán)境中進(jìn)行集成赦肃,不要帶到線上溅蛉。有一些hook操作會(huì)污染線上代碼。

2他宛、使用DoraemonKit內(nèi)置工具集的接入方式

在App啟動(dòng)的時(shí)候添加一下代碼

#ifdef DEBUG
#import <DoraemonKit/DoraemonManager.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    #ifdef DEBUG
        [[DoraemonManager shareInstance] install];
    #endif
}

通過以上步驟你就可以使用DorameonKit所有的內(nèi)置工具集合船侧。如果你想把自己與業(yè)務(wù)相關(guān)的一些工具代碼加入到DoraemonKit中做統(tǒng)一管理的話,你可以按照3的步驟來做厅各。

3镜撩、添加自定義測(cè)試模塊到Doraemon面板中(非必要)

比如我們要在Doraemon面板中添加一個(gè)環(huán)境切換的功能。

第一步:新建一個(gè)類队塘,實(shí)現(xiàn)DoraemonPluginProtocol協(xié)議中的pluginDidLoad方法袁梗,該方法就是以后點(diǎn)擊Doraemon工具面板中“環(huán)境切換”按鈕觸發(fā)的事件。

比如以代駕司機(jī)端為例憔古,點(diǎn)擊按鈕之后會(huì)進(jìn)入環(huán)境切換頁面遮怜。

@implementation KDDoraemonEnvPlugin
- (void)pluginDidLoad{
    [APP_INTERACOTR.rootNav openURL:@"KDSJ://KDDoraemonSFViewController"];
    [[DoraemonManager shareInstance] hiddenHomeWindow];
}
 @end

第二步:在Doraemon初始化的地方添加第一步中添加的“環(huán)境切換”插件

調(diào)用DoraemonManager的以下方法:

[[DoraemonManager shareInstance] addPluginWithTitle:@"環(huán)境切換" icon:@"doraemon_default" desc:@"用于app內(nèi)部環(huán)境切換功能" pluginName:@"KDDoraemonEnvPlugin" atModule:@"業(yè)務(wù)專區(qū)"];

依次代表 集成到DoraemonKit面板中的標(biāo)題,圖標(biāo)鸿市,描述锯梁,插件名稱,和所屬于的模塊灸芳。

比如以代駕司機(jī)端為例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    #ifdef DEBUG
       [self configDoraemonKit];
    #endif
}
//配置Doraemon工具集
- (void)configDoraemonKit{
    [[DoraemonManager shareInstance] addPluginWithTitle:@"環(huán)境切換" icon:@"doraemon_default" desc:@"用于app內(nèi)部環(huán)境切換功能" pluginName:@"KDDoraemonEnvPlugin" atModule:@"業(yè)務(wù)專區(qū)"];
    [[DoraemonManager shareInstance] addH5DoorBlock:^(NSString *h5Url) {
        [APP_INTERACOTR.rootNav openURL:@"KDSJ://KDWebViewController" withQuery:@{@"urlString":h5Url}];
    }];
    [[DoraemonManager shareInstance] install];
}

4涝桅、swift 接入方式

pod 同 OC 一樣

swift 4.0 4.2 5.0 接入方式都一樣

import UIKit

#if DEBUG
    import DoraemonKit
#endif

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

    #if DEBUG
        DoraemonManager.shareInstance().install()
    #endif
        return true
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烙样,隨后出現(xiàn)的幾起案子冯遂,更是在濱河造成了極大的恐慌,老刑警劉巖谒获,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤肌,死亡現(xiàn)場(chǎng)離奇詭異壁却,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)裸准,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門展东,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炒俱,你說我怎么就攤上這事盐肃。” “怎么了权悟?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵砸王,是天一觀的道長。 經(jīng)常有香客問我峦阁,道長谦铃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任榔昔,我火速辦了婚禮驹闰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撒会。我一直安慰自己嘹朗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布诵肛。 她就那樣靜靜地躺著骡显,像睡著了一般。 火紅的嫁衣襯著肌膚如雪曾掂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天壁顶,我揣著相機(jī)與錄音珠洗,去河邊找鬼。 笑死若专,一個(gè)胖子當(dāng)著我的面吹牛许蓖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播调衰,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼膊爪,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了嚎莉?” 一聲冷哼從身側(cè)響起米酬,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趋箩,沒想到半個(gè)月后赃额,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體加派,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年跳芳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芍锦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飞盆,死狀恐怖娄琉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吓歇,我是刑警寧澤孽水,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站照瘾,受9級(jí)特大地震影響匈棘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜析命,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一主卫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹃愤,春花似錦簇搅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凹耙,卻和暖如春姿现,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肖抱。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工备典, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人意述。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓提佣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荤崇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拌屏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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