Reveal : Xcode辅助界面调试工具
Reveal简介:
Reveal是一款iOS界面调试工具,辅助Xcode进行界面调试,使用它可以在iOS开发的时候动态的查看和修改应用程序的界面。
软件下载
首先去官网下载Reveal,下载地址:https://revealapp.com/download/
应用图标如下所示:
使用场景:
一、对于复杂的UI界面,一般我们使用纯代码进行布局,但是每次修改完代码都需要重新启动模拟器或者真机才能看到效果,相对比较麻烦;
二、当我们想要学习别人如何实现界面效果的时候
多种集成方式:
一: 使用CocoaPods
使用CocoaPods是最简单的集成方法,尤其适合团队开发,具体的步骤如下:
添加下面的文版到你的 Podfile 文件:
target 'YourMainAppTargetName' do
pod 'Reveal-SDK', :configurations => ['Debug']
end
执行:pod install
或者:pod update
在项目的根目录下执行 pod install 命令(如果之前已经在项目中使用了Cocoapods,执行 pod update 命令)
二: 通过给Xcode配置断点
适用范围:只适用于在模拟器上查看应用
1、使用快捷键 command+7 或者通过点击菜单 View → Navigators → Show Breakpoint Navigator 进入断点设置导航下
2、添加断点
3、设置断点参数
在 1 处写入UIApplicationMain
在 2 处点击 Add Action 按钮,复制下面的文字到输入框内
iOS targets:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer", 0x2) : ((void*)0)
tvOS targets:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer", 0x2) : ((void*)0)
最后 勾选上 Automatically continue after evaluating actions 项
最终的结果如下图所示:
4、右击,如下图所示进行设置:
设置完成,此时运行程序在模拟器中,打开Reveal,就能看见自己的APP的界面了:
三:链接RevealServer.framework 到应用程序
使用方法二只能查看模拟器上应用,如果想查看真机的界面,需要使用下面这种方法设置,
具体步骤如下:
1、找到RevealServer.framework库
2、导入库到程序的根目录下
3、Xcode配置
点击 TARGETS, 选中 Build Settings,
a、输入 Framework Search Paths,在Debeg行设置:
$(inherited) $(SRCROOT)
b、输入 Other Linker Flags,在Debeg行设置
-ObjC -lz -weak_framework RevealServer
c、输入 Runpath Search Paths,检查设置是否如下所示
$(inherited) @executable_path/Frameworks
配置截图如下:
配置完成再次点击 TARGETS, 选中 Build Phases,添加一个新的 Run Script ,可以给他重命名为 "Integrate Reveal Server" 或者其他描述都行,复制下面的脚本:
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 "Cannot find RevealServer.framework, so Reveal Server will not be started for your app."
fi
配置如下图所示:
添加一个 Run Script
配置完成图:
此时在真机上运行程序,便会在Reveal上看到自己的APP了,大功告成,如下图所示:
注意:一定保证真机和电脑在同一个WIFI下!!!
Reveal : Xcode辅助界面调试工具的更多相关文章
- iOS界面调试工具 Reveal-备用
Reveal是一个iOS程序界面调试工具.使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面. 对于动态或复杂的交互界面,手写UI是不可避免的.通过Reveal,我们可以方便地调试 ...
- ios 利用Reveal来调试界面1 --模拟器(步骤详解)
Reveal是一个程序界面调试工具,可以调试iOS apps和tvOS apps.使用Reveal,我们可以在开发时动态地查看和修改应用程序的界面.避免每次修改UI的时候都要重新运行程序.接下来按照规 ...
- Reveal分析IOS界面,plist文件读取
Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...
- [Xcode 实际操作]一、博主领进门-(10)Xcode右侧界面介绍
目录:[Swift]Xcode实际操作 本文将演示Xcode右侧界面介绍. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 右上角第三个[辅助编辑器]按钮,将代码切 ...
- 功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
本文转载至 http://www.cocoachina.com/industry/20140804/9307.html Faux Pas(Beta版下载地址)是一个Xcode辅助工具,用以检查Xcod ...
- 项目总结(五)--- 界面调试工具Reveal
在开发中,我们也许会碰到以下需求:对于一些动态复杂的交互界面,手码去制定界面是常有的事情,然而我们在开发中想修改过一些参数后想看下实时效果,只能重新运行项目,进入到对应的页面来进行修改,是不是有点麻烦 ...
- 界面调试工具reveal
iOS界面调试工具 Reveal 转自 http://chuansong.me/n/1308113 原创2015-04-17 唐巧iOS开发 Reveal是一个iOS程序界面调试工具.使用Reveal ...
- 界面调试工具Reveal的使用介绍
Reveal 注: 此处介绍Reveal,其中大部分内容来自于唐巧的<iOS开发进阶>一书,以此说明. 如何使用Reveal进行模拟器调试,只需进行以下三个步骤即可. 1. 创建.lldb ...
- ios 利用Reveal来调试界面2--真机调试(步骤详解)
使用真机调试我们的App界面,如果你的真机是没有越狱的设备,那么使用Reveal来调试UI的步骤是最麻烦的.
随机推荐
- node.js+mongodb 爬虫
demo截图: 本demo爬瓜子二手车北京区的数据 (注:需要略懂 node.js / mongodb 不懂也没关系 因为我也不懂啊~~~) 之所以选择爬瓜子二手车网站有两点: 一.网站无需登录,少做 ...
- JUC--volatiley&CAS
public class VolatileTest { public static void main(String[] args) { ThreadDemo td = new ThreadDemo( ...
- Java线程池(待续)
线程池是预先创建线程的一种技术..线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中.这些线程都是处于睡眠状态,即均为启动,不消耗CPU,而只是占用较小的内存空间.当请求到来之后,缓冲池给 ...
- 六 java和Tomcat
Java企业级应用TOMCAT实战 http://blog.oldboyedu.com/java-tomcat/ 老男孩笔记 常规应用架构模型 Tomcat对静态请求效率低,可以做动静分离,动态的给T ...
- python-装饰器&生成器&迭代器&推导式
一:普通装饰器 概念:在不改变原函数内部代码的基础上,在函数执行之前和之后自动执行某个功能,为已存在的对象添加某个功能 普通装饰器编写的格式 def 外层函数(参数) def 内层函数(*args,* ...
- C#学习-接口与抽象类
接口与抽象类的区别 1.抽象类中可以包含虚方法.非抽象方法和静态成员: 当接口中不能包含虚方法和任何静态成员,并且接口中只能定义方法,不能有具体事项,方法的具体实现由实现类完成. 2.抽象类不能实现多 ...
- mysql驱动问题
Unknown initial character set index '255' received from server. Initial client character 解决方法 驱动版本不对 ...
- 迅雷最新bug已被找到!mac不用登录也可以极速下载了!
想体验迅雷不限速的快感吗?下载这款迅雷Mac(不限速免vip)免登录版吧!拥有了这款迅雷Mac破解版,电影.游戏等所有大文件都不在话下.体验极速的下载功能,尽在迅雷Mac(不限速免vip)破解版!需要 ...
- UOJ#335. 【清华集训2017】生成树计数 多项式,FFT,下降幂,分治
原文链接www.cnblogs.com/zhouzhendong/p/UOJ335.html 前言 CLY大爷随手切这种题. 日常被CLY吊打系列. 题解 首先从 pruffer 编码的角度考虑这个问 ...
- Codeforces 446A. DZY Loves Sequences (线性DP)
<题目链接> 题目大意: 给定一个长度为$n$的序列,现在最多能够改变其中的一个数字,使其变成任意值.问你这个序列的最长严格上升子段的长度是多少. #include <bits/st ...