【问题标题】:Crash on first launch of sandboxed app首次启动沙盒应用程序时崩溃
【发布时间】:2012-06-28 03:03:21
【问题描述】:

我刚刚更改了沙盒应用的包标识符,然后运行了它。在main() 甚至运行之前我得到一个运行时异常。堆栈跟踪的顶部是runtime_init。我尝试在 Xcode 之外运行该应用程序并获得标准的崩溃报告对话框。滚动浏览提供的信息,我注意到:

Application Specific Information:
dyld: launch, running initializers
/usr/lib/libSystem.B.dylib
xpchelper reply message validation: sandbox creation failed: 1002
Container object initialization failed: The operation couldn’t be completed. (Cocoa error 13.)

只要我再跑一次,就没有问题了。我看到容器存在。但是,一旦我删除容器,异常就会再次抛出。我不希望我的用户对我的应用程序的第一次体验是崩溃的。我该如何解决这个问题?

我尝试修复权限,但没有任何区别。我还注意到,当 Xcode 因异常中断时,容器已经创建。此外,Craig Hockenberry 在blog post 中提到了这个错误,但他指责用户主目录中的符号链接。我那里没有任何符号链接(至少在顶层没有,这是我认为他的意思)。

附加输入on Twitter 表明它可以是一个符号链接任何地方,在这种情况下我肯定有一些。有没有人发现它的解决方法?我想这会很困难,因为在异常之前没有执行任何应用程序代码。希望山狮能解决它...?

【问题讨论】:

    标签: objective-c macos cocoa appstore-sandbox


    【解决方案1】:

    最终通过从桌面、文档、下载、电影和图片用户目录中删除所有内容来解决此崩溃问题。我认为它与其他线程中提到的符号链接问题有关。

    【讨论】:

    • 我知道这是导致问题的原因,如我的问题中所述。我正在寻找一种不需要我的用户手动清除其主文件夹中的任何符号链接的解决方案。
    • 我检查丢失的文件,然后提示用户查看在线支持文章或联系支持。在线文章描述了如何定位适当的容器目录并创建/移动必要的目录和文件。不太理想,但到目前为止有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2012-08-16
    • 1970-01-01
    相关资源
    最近更新 更多