macos - 对现有OSX应用进行沙箱

标签 macos app-store sandbox appstore-sandbox

我有一个现有的OSX应用程序,其支持OSX 10.5起。我想将其发布到AppStore,因此需要对应用程序进行沙箱处理。我猜沙盒应用程序应该支持10.7起。

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



  • 使用sanbox应用程序时,应在哪里存储临时文件?
    我应该将可读取/见证的db文件放置在哪里+新的App更新应该能够找到现有的db文件。
    应该保留崩溃报告程序的自定义代码还是将其冗余?

    谢谢

    最佳答案

    where do I store temp files ?



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

    Where should I place the db file which can be read/witten to



    在应用程序的“应用程序支持”目录中。 Use NSSearchPathForDirectoriesInDomains() to find it,然后附加应用程序的名称。同样,无论您是否被沙盒化,都是一样的。

    new App update should be able to find exsting db file.



    不可能。您可以要求用户使用NSOpenPanel定位现有文件,但您无法自己打开它,因为它位于沙箱外部。

    Should the custom code for crash reporter be kept or be made redundant ?



    您需要将其删除,因为它在沙箱环境下无法正常工作-崩溃报告不会存储到沙箱中。您将通过iTunes Connect收到应用程序的崩溃报告。

    另外,您可能想研究第三方崩溃报告服务,例如PLCrashReporter

    关于macos - 对现有OSX应用进行沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938720/

    相关文章:

    swift - NSTableView 动画不一致

    cocoa - Mac OS X,使窗口越过菜单栏

    ios - 在 IOS App 更新中更改 Bundle 标识符

    ios - 自动续订订阅到期日期不符合 Apple 规范

    objective-c - 一种获取核心数据对象属性最大值的简单、可靠的方法?

    谷歌身份验证失败时 iOS 应用程序被拒绝

    iphone - AppStore更新后iPhone App崩溃-CoreData

    macos - OS X 应用程序的沙盒路径

    debugging - 编译错误 Sandboxie Open Source v5.40

    macos - 为 github : "zsh: command not found: $" 生成 SSH key