【问题标题】:Debugging iPhone App from Command Line从命令行调试 iPhone 应用程序
【发布时间】:2010-01-26 11:14:36
【问题描述】:

我可以从 XCode 中执行此操作,但我希望能够从命令行启动 iPhone 应用程序(在设备上)。有可能吗?

为什么?因为我想捕获一些输出用于半自动化测试。我猜我需要为 NSLog 输出使用调试版本,但我也有兴趣了解将 NSLog / stdio 数据返回到主机 Mac 的其他方法。

【问题讨论】:

  • 我很可能是错的,但我认为除非越狱,否则您无法访问 iPhone 上的 cli?
  • 我认为他想使用计算机上的 CLI 在手机上以调试模式启动应用程序并捕获输出。

标签: iphone debugging command-line


【解决方案1】:

github上有一个名为titan_mobile的项目(Titanium Developer的一部分)。

我使用该项目中的一个实用程序,称为 iphonesim。它从命令行启动一个 iPhone 应用程序(虽然我不确定如何,但我认为有一种方法可以使用 SpringBoard.app 来做到这一点)。如果您在 Titanium Mobile 代码中更上一层楼并查看 builder.py,您可以看到它们如何在模拟器中启动应用程序并捕获输出。

【讨论】:

  • 这是一段非常有趣的代码,谢谢。我几乎可以让它在模拟器上运行——当然学到了很多关于构建自动启动 iPhone 应用程序的知识。最后,我找到了满足我特定需求的不同解决方案,但我认为该技术总体上很有趣。
【解决方案2】:

最终我以不同的方式解决了我的特定需求。我需要从 iPhone 的加速度计中获取数据到 Adob​​e AIR(Flash) 中的原型应用程序中。

我在 iPhone 上使用了这个应用程序,它会丢弃带有 X、Y、Z 力的 UDP 数据包。 http://code.google.com/p/accelerometer-simulator/wiki/Home

从这篇博文中发现,尝试做其他类似事情的人可能会感兴趣。 http://ifiddling.blogspot.com/2009/01/dummy2.html

我使用 Python 脚本向 Flash 提供服务器,获取 UDP 加速度计数据包,将它们插入 AMF 并将它们发送到 Flash。 Flash 使用套接字连接到此服务器并接收加速度计数据。

几个部分,但效果很好。

【讨论】:

    【解决方案3】:

    如果设备已越狱,您可以在设备上执行此操作。您可以在设备上放置调试版本和符号并在其上运行 gdb。它完全不受支持,但我听说它有效。不知道有没有好的教程。谷歌?

    【讨论】:

      【解决方案4】:

      一种方法是使用AsyncSocket 类,并将您想要从 iPhone 记录的任何数据传递到 Mac 上的基本主机应用程序,该应用程序 NSLog 接收到的任何内容。如果您关注 EchoServer 应用程序,您应该可以在几分钟内集成它

      【讨论】:

      • 这听起来不错。最后,我找到了满足我特定需求的不同解决方案,但我认为这会奏效。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      相关资源
      最近更新 更多