IOS UI界面调试工具 Reveal 使用教程

最近不是特别忙闲来无事,研究一下,上网一看好的教程,但是都不是最新的,而且根据网上的教程坐下来根本就不行,直接上官网,成功。记录下来!!!

1.建立连接,是reveal和Xcode的模拟器建立连接方法有两种

第一种。(自己开发的是,使用此方法,团队开发的时候,这种方法要求每人都必须有reveal,团队开发时不太方便,静态的加载)。

(1.)打开reveal,打开你的Xcode工程

reveal - help -Show Reveal Library in Finder


(2将reveal.framework 加入工程



(3)Build Settings -Other Linker Flag - 添加 -ObjC -lz -framework Reveal


(4)如果是Xcode的7需要注意Framework Search Paths 应该有reveal的路径,例如FRAMEWORK_SEARCH_PATHS = $(inherited) "$(SYSTEM_APPS_DIR)/Reveal.app/Contents/SharedSupport/iOS-Libraries",如果没有添加

(5)运行工程,打开reveal 如果以上方法做的都对,就连接成功。可以选择模拟器了。


第二种方法(动态加载,不要在发布(release)构建中调用此方法,确保仅是在应用的调试(debug)构建中加载libReveal.dylib。)

步骤(1)相同

(2)将libreveal.dylib 加入工程


Add to targets对话框中,反选所有的target。这确保了Xcode不会在编译时连接动态库文件。可选步骤:选中Copy items if needed,将会把libReveal.dylib拷贝到工程中——如果您这么做了, 请记住,当更新Reveal至新版本时,也依照上述步骤再次更新此库文件。

(3)target- bulid  phase - copy buldle resurces 添加 libreveal.dylib

添加依赖库

libz.tbd,CFNetwork.framework,QuartzCore.framework,CoreGraphics.framework

(4),动态加载库在调试器外部设备上运行的应用程序时,需要将libreveal.dylib作为构建过程的一部分。

代码

set -e

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

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

fi


(5)添加相应的代码到你相应的类中(如UIapplicationdelegate),可以根据你的需要进行相应的修改

注意:此方法为动态连接第三方的库

需要引进动态连接的方法

包含

#include <dlfcn.h>

- (void)loadReveal

{

if (NSClassFromString(@"IBARevealLoader") == nil)

{

NSString *revealLibName = @"libReveal"; // or @"libReveal-tvOS" for tvOS targets

NSString *revealLibExtension = @"dylib";

NSString *error;

NSString *dyLibPath = [[NSBundle mainBundle] pathForResource:revealLibName ofType:revealLibExtension];

if (dyLibPath != nil)

{

NSLog(@"Loading dynamic library: %@", dyLibPath);

void *revealLib = dlopen([dyLibPath cStringUsingEncoding:NSUTF8StringEncoding], RTLD_NOW);

if (revealLib == NULL)

{

error = [NSString stringWithUTF8String:dlerror()];

}

}

else

{

error = @"File not found.";

}

if (error != nil)

{

NSString *message = [NSString stringWithFormat:@"%@.%@ failed to load with error: %@", revealLibName, revealLibExtension, error];

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Reveal library could not be loaded"

message:message

preferredStyle:UIAlertControllerStyleAlert];

[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];

[[[[[UIApplication sharedApplication] windows] firstObject] rootViewController] presentViewController:alert animated:YES completion:nil];

}

}

}

(6)一个简单的集成方式是,在-[UIApplicationDelegate applicationDidBecomeActive:]方法中调用上面声明的- (void)loadReveal方法,以确保Reveal库尽早地被加载进来。


- (void)applicationDidBecomeActive:(UIApplication *)application

{

[self loadReveal];

}

reveal的删除

从您的Xcode项目中移除Reveal

根据您实际所选择的Reveal集成方式,请根据下述相关步骤来移除Reveal。

一旦库文件成功的移除后,下面的内容将不再会在您的应用启动时出现在Xcode控制台:

INFO: Reveal Server started (Protocol Version X).

静态连接

打开您的Xcode工程。 从Project Navigator删除 Reveal.framework的引用。 在Xcode的Project Navigator中选中您的工程,对于每一个集成了Reveal得target,请选择Build Settings标签页,将下面内容从 Debug 配置中的 OtherLinked Flags设置中移除:

-framework Reveal -ObjC and -lz (删除前请确认此配置内容仅是用于Reveal)。 搞定 - 运行应用,确认Reveal没有和应用连接上。

动态连接

打开您的Xcode工程。 从 Project Navigator 中删除 libReveal.dylib的引用。 在Xcode的 Project Navigator中选中您的工程,对于每一个集成了Reveal得target,选择 Build Phases 标签页,如果下列库文件仅供Reveal使用的话,请将它们从 Link Binary With Libraries 配置中移除:

libz.dylib CFNetwork.framework QuartzCore.framework CoreGraphics.framework 将自定义的codesign内容从 Build Phases 下的 Run Script 中删除。 将 loadReveal / startReveal 方法从您的代码中删除。 搞定 - 运行应用,确认Reveal没有和应用连接上。

连接成功如下


reveal功能介绍


点击界面的其中一个图像


修改属性的时候,你甚至可以直观的在模拟器上看到结果,但是代码需要自己去Xcode中修改


回到主屏幕




好了简单的使用就是如此!!!


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • Reveal是iOS开发工具中的神器之一,它能够在应用程序运行过程中调试应用程序界面。 通过Reveal我们可以连...
    jackfrued阅读 12,334评论 2 48
  • Reveal Reveal是分析、调试iOS应用UI的利器。 Reveal能够在运行时调试和修改iOS应用程序。它...
    fakepinge阅读 1,625评论 0 5
  • 参考链接 添加Reveal 为了让Reveal能够在运行时,检视及调试您的iOS应用,首先您需将Reveal库文件...
    681916139107阅读 2,676评论 0 6
  • 今天读了林清玄的《一个茶壶一个杯》,主要讲述的家乡一个老人聚集的“茶亭”,终日都有老人在那里喝茶开讲,这些都...
    高乐呵阅读 310评论 0 0
  • 今天上午终于狠了狠心对衣柜做了一次大清理,把许多衣服都丢掉了,一直都不舍得丢,又不喜欢再穿,于是在衣柜里越攒越多,...
    萵是秀秀阅读 250评论 0 0