我可以在XCode中完成它,但我希望能够通过命令行启动iPhone应用程序(在设备上)。这是可能的吗?
为什么呢?因为我想捕获一些输出以进行半自动化测试。我猜我需要使用调试构建来获取NSLog输出,但我也很想了解其他将NSLog / stdio数据传回主机Mac的方法。
我可以在XCode中完成它,但我希望能够通过命令行启动iPhone应用程序(在设备上)。这是可能的吗?
为什么呢?因为我想捕获一些输出以进行半自动化测试。我猜我需要使用调试构建来获取NSLog输出,但我也很想了解其他将NSLog / stdio数据传回主机Mac的方法。
最终我用了另一种方法解决了我的特定需求。我需要将iPhone的加速度计数据传输到Adobe 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使用套接字连接到此服务器并接收加速度计数据。
有几个部分,但它运行得很好。
在Github上有一个名为titanium_mobile的项目(Titanium Developer的一部分)。
我使用该项目中的一个实用程序称为iphonesim。它可以从命令行启动iPhone应用程序(虽然我不确定如何做到这一点,但我认为可以通过SpringBoard.app来实现)。如果您在Titanium Mobile代码中向上一级并查看builder.py,则可以看到他们如何在模拟器中启动应用程序并捕获输出。
如果您的设备已越狱,您可以在设备上执行此操作。您可以将调试版本和符号放在设备上,并在其上运行gdb。这完全不受支持,但我听说它可以工作。不确定是否有好的教程。谷歌?
其中一种方法是使用 AsyncSocket 类,并将您想要记录的任何数据从iPhone传递到Mac上的基本主机应用程序,该应用程序将记录其接收到的所有内容。 如果您遵循EchoServer应用程序,则应能够在短短几分钟内将其集成。