iOS Reveal 非越獄真機斷點調試

Reveal 是我們調試UI的利器艰垂,他避免了每次調試UI時一旦修改UI就需要重新cmd+R重新運行的麻煩操作键思,我們只需要接入Reveal互订,然后在Reveal操作界面修改UI屬性叠赦,可以直接反應在運行的App中流妻!如下圖的Reveal主界面牲蜀,最左邊反應樹形UI視圖層級,中間是一個3D的UI顯示層級绅这,右邊類似我們在使用xib時選中某個元素可以修改元素的各種屬性的操作涣达,修改完成后無需運行直接反應在我們的模擬器或者真機上面!方便極了

image.png

模擬器的調試

1:添加斷點按鈕,添加一個Symbolic BreakPoint

image.png

2:輸入Symbol:UIApplicationMain

image.png

3:add Action

image.png
  • version 1.6.3 (5790)
    • 模擬器

expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void )dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void)0);

  • 真機

expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen((char *)[(NSString *)[(NSBundle )[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2) : ((void)0;

  • version 4 (8769)
    • 模擬器

expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void )dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer", 0x2) : ((void)0);

  • 真機

(Class)NSClassFromString(@"IBARevealLoader") == nil ? (void)dlopen((char)[(NSString)[(NSString)[(NSBundle)[NSBundle mainBundle] pathForResource:@"RevealServer" ofType:@"framework"] stringByAppendingPathComponent:@"RevealServer"] cStringUsingEncoding:0x4], 0x2) : ((void)0);

4:選中Automatically continue after evaluating actions.
image.png

5:至此如果是模擬器的話度苔,直接cmd+R匆篓,即可!

image.png

真機的調試

真機的調試比較麻煩寇窑,文檔里面沒有直接說明鸦概,所以坑很多!自己參考了唐巧的iOS開發(fā)進階里面說的甩骏,但是沒有用窗市,經過資料查詢,終于解決了這個問題饮笛!

要用Reveal連接真機調試咨察,我們需要將Reveal的動態(tài)鏈接庫直接打包到程序里面去,原因是:iOS系統(tǒng)的沙盒機制福青,在未越獄的情況下摄狱,我們不可能訪問到Reveal的動態(tài)鏈接庫!只有打包到工程去素跺!

打開我們的Reveal二蓝,在菜單欄Help=>Show Reveal Library in Finder選項,選擇iOS Library會打開Finder指厌,將Finder里面的libReveal.dylib(v1.6.3)或者RevealServer.framework(v4)拖動到工程中刊愚,選擇Create Folder Reference,取消Add to Target

image.png

在Target=>Build Parse=>Copy Bundle Resource 將剛剛拖進工程的文件添加進去

image.png

按照唐巧的書寫的此時cmd+R就應該可以連接成功了

照他說的沒用踩验!

怎么辦鸥诽!怎么辦!怎么辦箕憾!

多方查資料得知:應該是libReveal.dylib(v1.6.3)或者RevealServer.framework(v4)沒有簽名牡借!想想也是,在我們的iOS系統(tǒng)中袭异,為了安全起見钠龙,我們是不能運行沒有簽名過的代碼的!

iOS這樣做的好處是御铃,當我們得到了一個App的運行包時碴里,我們不能簡單的修改二進制文件然后在重新裝機!

但還是有方法可以實現(xiàn)的上真,原理就是注入動態(tài)鏈接庫+重簽名咬腋!詳情可參考iOS冰與火之歌番外篇 - 在非越獄手機上進行App Hook

所以我們需要運行的時候給libReveal.dylib(v1.6.3)或者RevealServer.framework(v4)簽名!

選擇target=>build parse

image.png

點擊加號睡互,選擇New Run Script Phase

image.png

添加以下腳本對libReveal.dylib(v1.6.3)或者RevealServer.framework(v4)簽名根竿!

// v4

set -e

if [ -n "${CODE_SIGN_IDENTITY}" ]; then

codesign -fs "{CODE_SIGN_IDENTITY}" "{BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/RevealServer.framework/RevealServer"

fi

v1.6.3

set -e

if [ -n "${CODE_SIGN_IDENTITY}" ]; then

codesign -fs "{CODE_SIGN_IDENTITY}" "{BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/libReveal.dylib"

fi

image.png

至此cmd+R運行即可在連接列表中發(fā)現(xiàn)我們剛剛運行的App了

image.png

選中后即可看到如下界面

image.png

至此Reveal集成完畢陵像!接下來你就可以快樂的調試UI了!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末寇壳,一起剝皮案震驚了整個濱河市醒颖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌九巡,老刑警劉巖图贸,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冕广,居然都是意外死亡疏日,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門撒汉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沟优,“玉大人,你說我怎么就攤上這事睬辐∧痈螅” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵溯饵,是天一觀的道長侵俗。 經常有香客問我,道長丰刊,這世上最難降的妖魔是什么隘谣? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮啄巧,結果婚禮上寻歧,老公的妹妹穿的比我還像新娘。我一直安慰自己秩仆,他們只是感情好码泛,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澄耍,像睡著了一般噪珊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齐莲,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天卿城,我揣著相機與錄音,去河邊找鬼铅搓。 笑死,一個胖子當著我的面吹牛搀捷,可吹牛的內容都是我干的星掰。 我是一名探鬼主播多望,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼氢烘!你這毒婦竟也來了怀偷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤播玖,失蹤者是張志新(化名)和其女友劉穎椎工,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜀踏,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡维蒙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了果覆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颅痊。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖局待,靈堂內的尸體忽然破棺而出斑响,到底是詐尸還是另有隱情,我是刑警寧澤钳榨,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布舰罚,位于F島的核電站,受9級特大地震影響薛耻,放射性物質發(fā)生泄漏营罢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一昭卓、第九天 我趴在偏房一處隱蔽的房頂上張望愤钾。 院中可真熱鬧,春花似錦候醒、人聲如沸能颁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伙菊。三九已至,卻和暖如春敌土,著一層夾襖步出監(jiān)牢的瞬間镜硕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工返干, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兴枯,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓矩欠,卻偏偏與公主長得像财剖,于是被迫代替她去往敵國和親悠夯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • Reveal簡介 Reveal是一個iOS程序界面調試工具躺坟÷俨梗可以在Reveal上查看視圖的層級和修改控件的屬...
    繁星mind閱讀 11,218評論 11 35
  • Reveal是iOS開發(fā)工具中的神器之一,它能夠在應用程序運行過程中調試應用程序界面咪橙。 通過Reveal我們可以連...
    jackfrued閱讀 12,395評論 2 48
  • 在移動開發(fā)當中夕膀,APP的界面的編寫和調試占了相當?shù)囊徊糠謺r間,那么在不借助Xcode之外的第三方工具的情況下來調試...
    要上班的斌哥閱讀 11,740評論 15 72
  • Reveal Reveal是分析美侦、調試iOS應用UI的利器产舞。 Reveal能夠在運行時調試和修改iOS應用程序。它...
    fakepinge閱讀 1,628評論 0 5
  • 那時在老家上初一的小女兒放暑假了音榜,想馬上來長沙玩庞瘸,因沒達到她爸給她訂的期考目標分數(shù),先補課一個月赠叼,八月份才能來...
    熱冰_1c24閱讀 205評論 0 5