【问题标题】:Is it even possible for one iOS app to access another app's Caches directory?一个 iOS 应用程序甚至可以访问另一个应用程序的 Caches 目录吗?
【发布时间】:2011-08-22 16:20:12
【问题描述】:

我正在使用 GHUnit 编写单元测试。我想检查是否正在另一个应用程序的库目录中的缓存目录中生成文件。这是可行的,还是阻止应用程序访问彼此的库目录?如果是这样,是否有任何可能的解决方法来为此创建单元测试?我是否可以将生成的文件存储在不同的目录中,例如 Documents,还是没有帮助?

【问题讨论】:

  • 当您说“不同的应用程序”时,您指的是 GHUnit 在您的 iPhone 中安装为单独的目标和捆绑标识符(因此是不同的“图标”)这一事实?
  • 是的,我就是这个意思。因为 GHUnit 这样做,是否意味着它可以被视为不同的应用程序,因此无法访问我正在为其编写单元测试的应用程序的 Library 目录?

标签: iphone ios unit-testing gh-unit nsdocumentdirectory


【解决方案1】:

应用只能访问其沙箱中自己的文件夹。您的单元测试应用是否与您要验证其缓存内容的应用分开?

【讨论】:

  • 我正在使用 GHUnit,所以我很确定它们是独立的应用程序。
  • 我就是这么想的,很高兴你找到了答案。
【解决方案2】:

不,您需要做的是使用 url 前缀,并使用该应用程序在安装时注册的方法来执行您需要完成的任何事情。

【讨论】:

    【解决方案3】:

    在设备上根本不可能。在模拟器中,如果您知道命名应用程序安装目录的随机 UUID,理论上您可以这样做。

    但我强烈建议您不要尝试。相反,让您打算测试的代码具有足够的可测试性。验证另一个应用程序是否正常运行的单元测试几乎与验证您使用正确参数调用 API 的单元测试一样无用。

    【讨论】:

      【解决方案4】:

      我不了解您尝试进行单元测试的上下文,所以也许我的回答是错误的,但我得到的是您想要访问您的其他应用程序,因为 GHUnit 是作为单独的应用程序构建的。

      应该没有理由这样做 - 与其解决沙盒问题,不如解决整个问题。

      为什么不首先从测试目标应用程序运行您尝试测试的任何缓存创建代码,然后检查您的捆绑包的 Libary/Cache 目录?

      这就是它的全部内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2011-03-27
        • 1970-01-01
        相关资源
        最近更新 更多