2013-04-12 85 views
5

我需要使用Mac或Linux的命令行(非gui)访问安装在iOS设备上的应用程序的沙盒目录。这是为了帮助开发和测试自动化。将json文件放入沙盒中可让我设置参数,如额外的调试消息和较小的刷新间隔。命令行从Mac访问iOS应用程序目录(沙箱)

像iFunBox这样的工具完美的工作,但只是图形化,需要大量的点击来做到这一点。给开发者的电子邮件没有得到答复。它也不支持AppleScript。我确实找到了另一个提供了Fuse模块的应用程序,但它却成了bug,特别是如果应用程序被卸载并重新安装(为了重新设置为第一次用户体验)。我向开发人员报告了这些问题,但没有解决问题。

我需要做的事情是:

  • 测试是否安装了特定的软件包ID应用程序
  • 创建库/缓存/ MYLIBNAME目录,如果不存在
  • 复制它〜从Mac 100字节JSON文件到该目录
  • 获取该文件
  • 一个解决方案,只有从Linux作品的复制品是可以接受的太
  • 个设备没有越狱,我宁愿不需要,作为一项要求

在某些情况下,我没有源代码的应用程序,因为它使用我的图书馆是一个第三者,所以编写不同版本的该应用程序并不实用。

谢谢lxt,答案在下面的很多评论。摘要:与libimobiledevice相关

  • 各种库和程序可以解决问题
    • 使用打补丁 IFUSE安装的应用程序沙箱
    • 使用idevicesyslog看到控制台日志
    • 使用ideviceinstaller安装/卸载应用程序
  • 各种库和编与libimobiledevice相关的ram是非常困难的,如果不是不可能编译,就像在Linux或Mac上一样,并且没有源码或二进制文件的统一分发
    • 对于Ubuntu,尝试libimobiledevice(可能有3个后缀),ideviceinstaller和libimobiledevice-utils包
    • 对于Mac的搜索libimobiledevice,MacOSX上可以查到一些的有

回答

1

方式这将是一个有点棘手,因为我认为你已经找到了应用程序的名称是在每次安装时随机生成的。我不认为有什么方法可以通过,当然我知道。这解释了模拟新安装时遇到的问题(...应用程序目录名称更改为新的随机散列,然后您被卡住了)。

尽管我的偏好是以其他方式访问此配置文件(可能通过网络,并且有一些代码只能在调试/测试版本上执行检查),但如果您确实想要这样做,那么我'd建议尝试像编写一个脚本,当你想模拟一个新的安装选择最近修改的应用程序目录。但这很不好。

如果您无法插入仅在调试/测试版本上执行的条件代码,那么我认为iOS在文件系统级别使用的随机应用程序命名架构对您的任何方法都会产生问题。

更新:关于iFuse和libimobiledevice - 开箱即用,它将您限制到文档目录。这是因为iFuse的作者不会让入门级用户感到困惑,也是因为iOS版本的结构稍有不同。您可以注释掉iFuse源代码中的行 - fuse_opt_add_arg(&args, "-osubdir=Documents"); - 以通过挂载访问库目录。如果这样做,你显然需要自己重新编译iFuse。

+0

我很乐意去做所有这些事情,但我没有办法在第一时间进行命令行访问。一旦我有了其他一切都很简单/ SMOP。我可以找到的所有工具都是GUI,而且不能以任何方式自动化,这就是问题所在。 –

+0

啊,对不起 - 这就是你以后的样子:http://www.libimobiledevice.org/ - 它适用于非越狱设备,但显然你只能访问apps目录。在Linux上应该没问题,尽管我只在OS X上使用它。 – lxt

+0

您确定libimobiledevice可以访问应用程序沙箱目录(库,缓存等)吗?我确实看了一会儿,找不到任何可以证明的证据。它绝对可以访问其他目录(应用程序文件共享等),但这对我没有用处。据我可以告诉他们使用不同的协议。 –

0

您可以使用MobileDevice Library

+0

Ocelot,请你告诉我们如何利用这个?我喜欢通过命令行将一些文档(在设备上)文件传输到mac机器 – iamMobile

0

我知道这是一个老问题,我怀疑是有人找了这里,但我想我会提到,你可以用“酿造安装libimobiledevice”编写关于苹果电脑。有很多的依赖和家酿确实有助于通过为你安装它使它变成一个简单的过程。

相关问题