沙箱现有的OSX应用程序

时间:2014-07-24 16:03:02

标签: macos app-store sandbox appstore-sandbox

我有一个支持OSX 10.5的现有OSX应用程序。我想将它发布到AppStore,因此我需要沙盒应用程序。我猜沙箱应用程序应该支持10.7以上。

  • 该应用程序使用用户名目录中的文件夹来创建临时文件等
  • 它还将已经有空表的sql db文件复制到同一个临时文件夹,并在使用该应用程序时更新记录。
  • 此外,如果发生崩溃,它会从osx的crashlog文件夹中获取日志,并请求用户将其提交给开发人员。

问题

使用sanbox应用程序,我在哪里存储临时文件? 我应该在哪里放置可以读取/替换的db文件+新的应用程序更新应该能够找到exsting db文件。 崩溃记者的自定义代码应该保留还是冗余?

谢谢

2 个答案:

答案 0 :(得分:0)

  

我在哪里存储临时文件?

In the directory recommended by NSTemporaryDirectory().(这适用于沙盒和非沙盒应用程序。)

  

我应该在哪里放置可以读取/替换的db文件

在应用程序的Application Support目录中。 Use NSSearchPathForDirectoriesInDomains() to find it,然后附上您的应用程序名称。同样,无论您是否使用沙盒,都是一样的。

  

新的应用更新应该能够找到exsting db文件。

不可能。您可以要求用户使用NSOpenPanel找到现有文件,但您无法自行打开,因为它位于您的沙箱之外。

  

崩溃记者的自定义代码应该保留还是冗余?

您需要将其删除,因为它无法在沙盒中运行 - 崩溃报告不会存储到您的沙箱中。您将通过iTunes Connect收到应用程序的崩溃报告。

或者,您可能希望查看第三方崩溃报告服务,例如PLCrashReporter

答案 1 :(得分:0)

有一种机制可以将现有应用的数据迁移到沙箱中:Migrating an App to a Sandbox在developer.apple.com上

首次启动新沙盒应用时,即可完成此操作。如果您可以确定数据库的存储位置,则可以将其迁移到沙箱中。