我需要使用Mac或Linux上的命令行(non-gui)访问安装在iOS设备上的应用程序的沙箱目录。这有助于开发和测试自动化。将json文件拖放到沙箱中可以让我设置额外的调试消息和更小的刷新间隔等参数。
像iFunBox这样的工具可以很好地工作,但只是图形化,需要多次点击才能做到这一点。发给开发人员的电子邮件没有得到答复。它也不支持AppleScript。我确实找到了另一个提供Fuse模块的应用程序,但是如果应用程序被卸载然后重新安装(以便重置为第一次用户体验),它就变成了错误。我向开发人员报告了这些问题,但目前还没有解决问题。
我需要做的事情是:
在某些情况下,我没有应用程序的源代码,因为它是使用我的库的第三方,因此编译不同版本的应用程序是不切实际的。
感谢lxt,许多评论中的答案如下。摘要是:
答案 0 :(得分:1)
这有点棘手,因为我认为你已经发现应用程序名称是在每次安装时随机生成的。我不认为有过这样的方式,当然我知道。这解释了您在模拟新安装时遇到的问题(...应用程序目录名称更改为新的随机哈希,然后您被卡住了。)
虽然我倾向于以其他方式访问此配置文件(可能通过网络,并且只有一些代码只能在调试/测试版本上执行检查),如果你确实想要这样做,那么我'建议尝试编写一个脚本,当你想要模拟一个新安装时,选择最近修改过的app目录。但这非常黑客。
如果您无法插入仅在调试/测试版本上执行的条件代码,那么我认为iOS在文件系统级别使用的随机应用程序命名架构对您采取的任何方法都会有问题。< / p>
更新:关于iFuse和libimobiledevice - 开箱即用它会限制您访问文档目录。这是因为iFuse的作者不会让入门级用户感到困惑,也因为结构因iOS版本而略有不同。您可以注释掉iFuse源代码行中的行 - fuse_opt_add_arg(&args, "-osubdir=Documents");
- 以通过mount访问库目录。如果这样做,你显然需要自己重新编译iFuse。
答案 1 :(得分:0)
您可以使用MobileDevice Library
答案 2 :(得分:0)
我知道这是一个老问题,我怀疑是否有人在这里看了,但我想我会提到你可以使用'brew install libimobiledevice'在mac上编译。有很多依赖项,Homebrew真的有助于通过为您安装它们来简化它。