学习使用Reveal连接模拟器和真机调试

学习使用Reveal连接模拟器和真机调试

 

  Reveal是一个ios程序界面调试工具。

(一)用终端创建文件,设置别名

  首先打开Terminal(终端),输入vim~/.lldbinit创建一个名为.lldbinit的文件,然后将如下内容输入该文件中:

  command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport- Libraries/libReveal.dylib",0x2);

  command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4],0x2);

  command alias reveal_start expr (void)[(NSNotificationCenter *)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];

  command alias reveal_stop expr (void)[(NSNotificationCenter *)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];

 

这步是为lldb设置了4个别名:

1、reveal_load_sim 为模拟器,加载reveal调试用的动态链接库。

2、reveal_load_dev为真机加载reveal调试用的动态链接库。

3、reveal_start启动reveal调试功能。

4、reveal_stop结束reveal调试功能。

(二)添加断点,设置断点

  我们需要在APPDelegate类的application:didFinishLaunchingWithOptions:方法中操作:

  1.给该方法添加一个断点,右击改断点,选择Edit Breakpoint。

  加入断点,编辑断点

  2.单击Action旁边的Add Action(没有的话点击右边‘+’按钮),输入“Reveal_load_sim”。

  3.勾选“Options”上的“Automatically continue after evaluating”选项。

  设置断点

(三)添加Reveal,并设置

  现在,我们需要找到Reveal.app,右击选择显示包内容,将Contents-->SharedSupport-->iOS-Libraries里的Reveal.framework拖入打开的Xcode工程中。点击Build Phases  然后从Link Binary With Libraries 删除Reveal.framework(一定要移除啊)。

  注:如果将Reveal.framework拖入打开的Xcode工程中时,没有操作下面这一步的话,就会出现错误:

  错误信息

  选中Build Settings 在搜索栏中输入 Other Linker Flags,在Other Linker Flags(也可以在Other Linker Flags下的Debug中)输入-ObjC -lz -framework Reveal。

(四)完成连接,进行调试

  完成上边操作后 command + R  运行Xcode程序,打开Reveal,就可以在Reveal界面的左上角看到有模拟器(真机)可以连接调试。

   注:真机的话保证在同一个wifi下。

 

参考:http://www.jianshu.com/p/0cc7089143a3(里边包含破解方法)

转载于:https://www.cnblogs.com/19940122yzc/p/5408112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值