有没有办法从iPhone上的stdin读取硬件或模拟器?

当我从XCode调试OSX应用程序时,我可以从XCode调试控制台与应用程序的控制台进行通信 – 例如,应用程序可以将printf()发送到stdout并显示在XCode调试控制台上,我的应用程序可以调用fgets()在stdin上我可以在XCode调试控制台中输入输入.

看起来XCode,在调试iOS iPhone应用程序时,挂起了stdout(printf()等.工作正常),但不是stdin?

有没有人在iOS / iPhone上工作?这在调试期间非常有用 – 即使使用iOS Cocoa应用程序也是如此.我可以用更复杂的方式使用它,比如使用套接字,但我只是让XCode为我做这个.

更新:

嗯,这可以解释它. iOS模拟器实际上为stdin打开/ dev / null.可以找出stdout的去向(通常是/ dev / ttys00X),然后用O_RDONLY重新打开它并将其分配给stdin.这适用于iOS模拟器,但看起来与iphone硬件的串行连接的线路规则是错误的 – 你可以在xcode调试控制台中输入输入,它永远不会被发送到iphone硬件(并且你的程序正在运行)在iPhone硬件上只会等待某些事情出现在stdin aka / dev / ttys00X上.

我想知道是否有任何方法可以使用iPhone硬件?

最佳答案 我没有这个确切问题的解决方案,很可能没有办法做到这一点.我有另一个建议.我在我的一个项目中使用它并且效果很好.

我使用AsyncSocket库来实现一个微型TCP服务器,我可以使用telnet连接到我的应用程序.这种方法有一些优点:

>您不必在调试器下运行
>可从任何计算机访问该应用程序
>可以在别人的手机上访问应用程序(在团队中很方便)
>它是可编写脚本的(可以批量多个命令)
> extendable(很容易使HTTP服务器与浏览器连接)

点赞