Reveal

REVEAL:Version 1.5.1(4946)
Xcode 8.3
模拟器模拟:iPhone 6 - iOS 10.3(14E269)
真机测试:iPhone6 plus / iOS 9.3.1


模拟器###

1.创建一个新的OC测试工程
2.打开Reveal,点击工具栏Help->Show Reveal Library in Finder,将Reveal.framework静态库添加到工程中。
模拟器 图1
3.静态库引用设置。
模拟器 图2
4.添加系统依赖库。
模拟器 图3
5.打开Reveal并选择设备运行模拟器.
模拟器 图4

真机###

1.获取libReveal.dylib库
真机1
2.将库添加到Reveal项目中:注意不要 Add to targets:Reveal.
真机2
真机3
3.添加系统依赖库:CFNetwork.framework,QuartzCore.framework,CoreGraphics.framework
真机4
4.添加Reveal运行脚本
set -e

if [ -n "${CODE_SIGN_IDENTITY}" ]; then
codesign -fs "${CODE_SIGN_IDENTITY}" "${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/libReveal.dylib"
fi
真机5
真机6
5.添加代码:在AppDelegate.m里面导入头文件

真机7

- (void)applicationDidBecomeActive:(UIApplication *)application 方法里面如下图调用方法
真机8

- (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.如果连接Reveal成功打印以下报文
真机9
7.我遇到的错误以及注意
真机10

解决方法:将Enable Bitcode修改为NO


真机11

提示:真机测试,电脑和手机最好使用同一WiFi或者手机使用电脑创建的WiFi

模拟器部分参考:
[ Reveal在真机和模拟器上的使用]
真机部分参考:
配置reveal实现真机调试项目遇到的坑总结
使用Reveal调试和分析UI
http://www.jianshu.com/p/290af2bf5afb

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Reveal是iOS开发工具中的神器之一,它能够在应用程序运行过程中调试应用程序界面。 通过Reveal我们可以连...
    jackfrued阅读 14,287评论 2 48
  • Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Ch...
    被丢掉的咸鱼阅读 4,014评论 0 1
  • Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Ch...
    Chris_js阅读 3,644评论 2 2
  • 培训与教育的区别 细思中国的教育大概经历了以下几个阶段:一是封建社会初期,孔子提出“罢黜百家,独尊儒术...
    壹壶茶阅读 2,953评论 0 50
  • 阅读有效时间:45分钟 阅读中遇到了什么困难:开小差 收获:学会如何提问,提问比表达更吻合“沟通”的内涵——表达可...
    湖涞阅读 1,000评论 0 0

友情链接更多精彩内容