最新版 Reveal 使用方法

最近更新了 Reveal 2, 發(fā)現(xiàn)以前 Reveal 1 的斷點方式無法使用, 然后我就發(fā)現(xiàn)官網(wǎng)提供了三種使用方式, 但是因為是英文的, 所以我還是整理一下.

通過 CocoaPods 導(dǎo)入

很簡單的方式, 只需要在你的 Podfile 文件添加 pod 'Reveal-SDK', :configurations => ['Debug'], 然后在終端執(zhí)行 pod updatepod install.
運行 APP, 就可以在 Reveal 中查看你的 APP 界面布局了, 并且只有在 debug 模式下才能查看, 如果是 release 模式則不能.
通過這種方式集成的 Reveal, 可以查看模擬器和真機上 APP 界面布局.

使用斷點的方式導(dǎo)入

  • 安裝 Reveal 的 Debugger Commands
    安裝前


    安裝前.png

    安裝后


    安裝后.png
  • 創(chuàng)建Symbolic Breakpoin, 找到添加斷點的地方, 如圖

Paste_Image.png

點擊紅框所示的 "+" 按鈕, 選擇Symbolic Breakpoin

  • 編輯斷點
    斷點創(chuàng)建以后, 我們右擊編輯斷點, 在 Symbol 處填寫 UIApplicationMain, 點擊 Add Action 按鈕添加一個 Action, 輸入 reveal load, 并且勾選 Automatically continue after evaluating actions
Paste_Image.png
  • 完成后, 再次右擊斷點, 選擇 Move Breakpoint To, 再選擇 User
Paste_Image.png
  • 在模擬器上運行 APP, 即可在 Reveal 中查看 APP 的界面布局

  • 如果你想要在 Reveal 中查看運行在真機上的 APP 界面布局, 那么你需要添加一個運行腳本, 即 Run Script
    先選中項目, 然后選中 Target, 再選中 BuildPhases, 創(chuàng)建一個新的Run Script, 如圖

Paste_Image.png

將這個新的Run Script重新命名為 Integration Reveal, 再將如下代碼復(fù)制到下圖中紅框2的位置

REVEAL_APP_PATH=$(mdfind kMDItemCFBundleIdentifier="com.ittybittyapps.Reveal2" | head -n 1)
BUILD_SCRIPT_PATH="${REVEAL_APP_PATH}/Contents/SharedSupport/Scripts/reveal_server_build_phase.sh"
if [ "${REVEAL_APP_PATH}" -a -e "${BUILD_SCRIPT_PATH}" ]; then
    "${BUILD_SCRIPT_PATH}"
else
    echo "Reveal Server not loaded: Cannot find a compatible Reveal app."
fi
Paste_Image.png

在真機上運行你的 APP, 就可以在 Reveal 中查看了.
注意1: 必須在 debug 模式
注意2: 必須是非越獄手機, 反正我的越獄機是無法弄, 一但用斷點的方式使用 Reveal, APP 壓根兒跑不起來, 非越獄手機實測沒問題

手動導(dǎo)入

  • 首先, 你需要將 Reveal 的 framework 導(dǎo)出
Paste_Image.png
Paste_Image.png
  • 將這個 framework 復(fù)制一份出來, 然后將復(fù)制出來的導(dǎo)入到你的項目中.
    注意, 此時千萬不要把原文件直接拖入你的項目中, 防止出現(xiàn)手誤把這個 framework 刪除了或改變

  • 打開項目的 Build Settings, 找到 Framework Search Paths, 在 Debug 里添加 framework 搜索路徑

    Paste_Image.png

    注意: 搜索路徑應(yīng)該根據(jù)你自己的實際情況來填寫. "$(PROJECT_DIR)"代表的是項目根目錄.
    還有就是, Release 那一行, 不要填寫 RevealServer.framework 的搜索路徑, 如果 Release 那一行被Xcode自動填寫了, 那么刪除它, 原因嘛, 是因為官方希望你在 Debug 的時候使用 Reveal, 當你 Release 時, 不要使用.

  • 還是在 Build Settings 這里, 找到 Other Linker Flags, 添加 -ObjC -weak_framework RevealServer, 如果已經(jīng)有 -ObjC, 那就不用再寫 -ObjC了. 當然了, 依然只是在 Debug 那一行添加.

    Paste_Image.png

  • 繼續(xù)在 Build Settings 里找到 Runpath Search Paths, 添加 $(inherited) @executable_path/Frameworks.

Paste_Image.png

PS: 這個地方是 Reveal 官方指引上寫的, 但是吧, 我實際測試發(fā)現(xiàn)好像 Xcode 會自動填寫, 所以這一步可以跳過

  • Build Phases 中創(chuàng)建 Run Script, 命名為 Integration Reveal, 添加如下腳本代碼
export REVEAL_SERVER_FILENAME="RevealServer.framework"

 # Update this path to point to the location of RevealServer.framework in your project.
 export REVEAL_SERVER_PATH="${SRCROOT}/${REVEAL_SERVER_FILENAME}"

 # If configuration is not Debug, skip this script.
 [ "${CONFIGURATION}" != "Debug" ] && exit 0

 # If RevealServer.framework exists at the specified path, run code signing script.
 if [ -d "${REVEAL_SERVER_PATH}" ]; then
   "${REVEAL_SERVER_PATH}/Scripts/copy_and_codesign_revealserver.sh"
 else
   echo "Reveal Server not loaded: RevealServer.framework could not be found."
 fi

注意: 腳本中 REVEAL_SERVER_PATH 這個路徑, 應(yīng)該根據(jù)你的 RevealServer.framework 實際的路徑填寫, 比如我的 RevealServer.framework 是放在了 720DEMO 這個文件夾下, 那么我就應(yīng)該寫成 REVEAL_SERVER_PATH="${SRCROOT}/720DEMO/${REVEAL_SERVER_FILENAME}", 這個路徑一定要跟你的 RevealServer.framework 一致, 否則是無法使用 Reveal 的

  • 運行 APP 就可以用 Reveal 查看界面布局了, 真機模擬器都行.

在APP Extensions 上使用 Reveal

使用步驟和上面三個差不多, 區(qū)別在于項目中 Target 的選擇, 在選擇 Target 的時候我們需要選中我們的 APP Extensions 對應(yīng)的 Target 而不是主程序?qū)?yīng)的 Target.
對于CocoaPods來說, 你需要這么寫

target '你的 APP Extension 對應(yīng)的 Target 名字' do
    pod 'Reveal-SDK', :configurations => ['Debug']
end

后記

好了, 就這么多吧, 上面的方式我都實際測試過, 沒有問題. 恩, 除了APP Extension.
關(guān)于越獄機無法用斷點的方式在真機上使用 Reveal, 我咨詢了官方的技術(shù)人員, 不過并沒有解決, 應(yīng)該是越獄行為對手機做了某些操作導(dǎo)致 Symbolic Breakpoin 無法通過, 所以沒辦法, 等官方解決吧.
我最后使用了CocoaPods的方式來使用 Reveal, 我只想說, 真是簡單粗暴啊! 確實很方便. 還有, 我不推薦用手動的方式導(dǎo)入, 太麻煩了有沒有! 我個人推薦用斷點方式來使用 Reveal, 不怎么麻煩也不會對項目造成侵入.
最后的最后, 如果你們有任何的問題, 請去找官方, 因為找我也沒用, 哈哈哈哈哈哈哈.

參考

[Reveal官方使用指導(dǎo)](file:///Applications/Reveal.app/Contents/SharedSupport/Documentation/Reveal%20Integration%20Guide.html)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跛璧,一起剝皮案震驚了整個濱河市卷胯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哮洽,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡天试,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門然低,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喜每,“玉大人,你說我怎么就攤上這事雳攘〈担” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵吨灭,是天一觀的道長刚照。 經(jīng)常有香客問我,道長沃于,這世上最難降的妖魔是什么涩咖? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任海诲,我火速辦了婚禮繁莹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘特幔。我一直安慰自己咨演,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布蚯斯。 她就那樣靜靜地躺著薄风,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拍嵌。 梳的紋絲不亂的頭發(fā)上遭赂,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音横辆,去河邊找鬼撇他。 笑死,一個胖子當著我的面吹牛狈蚤,可吹牛的內(nèi)容都是我干的困肩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼脆侮,長吁一口氣:“原來是場噩夢啊……” “哼锌畸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起靖避,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤潭枣,失蹤者是張志新(化名)和其女友劉穎比默,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卸耘,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡退敦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚣抗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侈百。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖翰铡,靈堂內(nèi)的尸體忽然破棺而出钝域,到底是詐尸還是另有隱情,我是刑警寧澤锭魔,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布例证,位于F島的核電站,受9級特大地震影響迷捧,放射性物質(zhì)發(fā)生泄漏织咧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一漠秋、第九天 我趴在偏房一處隱蔽的房頂上張望笙蒙。 院中可真熱鬧,春花似錦庆锦、人聲如沸捅位。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艇搀。三九已至,卻和暖如春求晶,著一層夾襖步出監(jiān)牢的瞬間焰雕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工芳杏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留矩屁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓蚜锨,卻偏偏與公主長得像档插,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子亚再,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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