【问题标题】:Mac app crashes from finder but runs inside TerminalMac 应用程序从 finder 崩溃,但在终端内运行
【发布时间】:2012-02-13 16:15:01
【问题描述】:

我尝试搜索,但没有找到可以回答我的问题的特定帖子。 对于我的 MacOS 应用程序,我在 /Library/Frameworks 中有一个外部框架,我正在链接到该框架。 该应用程序在 Xcode 中运行良好。该应用程序在我的开发系统上自行运行良好。 如果我将应用程序包复制到另一台机器上,并将外部框架复制到 /Library/Frameworks 区域(因此它与我的开发机器具有类似的设置),则应用程序在尝试执行使用外部框架。

奇怪的是,如果从终端或通过 gdb 运行,应用程序不会在另一台机器上崩溃。当从 Finder 启动时,它只会在使用外部框架的功能上崩溃。我确保权限等都是开放的。 崩溃是 BAD_ACCESS (SIGSEGV) 类型,该功能涉及使用框架写出文件。 关于什么可能导致崩溃/如何进行调试的任何想法?

谢谢

【问题讨论】:

    标签: macos frameworks crash terminal


    【解决方案1】:

    您遇到的最可能的区别是工作目录——从终端手动启动应用程序将在您当时碰巧所在的任何目录中运行它,同时正常启动它(例如,通过双击它在 Finder 中)将以/ 的工作目录启动它。确保您没有错误地使用任何相对路径。

    【讨论】:

    • 你是指app bundle/OS SDK相关框架的路径吗?我为此使用了绝对路径。此外,从 Finder 启动该应用程序在我的开发机器上没有问题。无论项目路径是相对的,都应该影响它在开发机器上的行为方式......对吗?
    • 感谢您提供一般路径提示。直接在 / 下写入文件是我的问题的原因。我更改了代码以专门在其他地方编写。从终端运行时,似乎在 / 下写入似乎没有问题。
    猜你喜欢
    • 2010-10-14
    • 2020-06-22
    • 1970-01-01
    • 2020-09-09
    • 2021-10-03
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多