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

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

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

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

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

reveal - help -Show Reveal Library in Finder

IOS UI界面调试工具 Reveal 使用教程_第1张图片

(2将reveal.framework 加入工程


IOS UI界面调试工具 Reveal 使用教程_第2张图片

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

IOS UI界面调试工具 Reveal 使用教程_第3张图片

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

IOS UI界面调试工具 Reveal 使用教程_第4张图片

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


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

步骤(1)相同

(2)将libreveal.dylib 加入工程


IOS UI界面调试工具 Reveal 使用教程_第5张图片

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

IOS UI界面调试工具 Reveal 使用教程_第6张图片

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

添加依赖库

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

IOS UI界面调试工具 Reveal 使用教程_第7张图片

(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


IOS UI界面调试工具 Reveal 使用教程_第8张图片

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

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

需要引进动态连接的方法

包含

#include

- (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没有和应用连接上。

连接成功如下


IOS UI界面调试工具 Reveal 使用教程_第9张图片

reveal功能介绍


IOS UI界面调试工具 Reveal 使用教程_第10张图片

点击界面的其中一个图像


IOS UI界面调试工具 Reveal 使用教程_第11张图片

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


IOS UI界面调试工具 Reveal 使用教程_第12张图片

回到主屏幕


IOS UI界面调试工具 Reveal 使用教程_第13张图片


IOS UI界面调试工具 Reveal 使用教程_第14张图片


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


你可能感兴趣的:(IOS UI界面调试工具 Reveal 使用教程)