Mac 应用程序从 finder 中崩溃,但在终端内运行

发布于 2024-12-28 06:16:42 字数 392 浏览 0 评论 0原文

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

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

谢谢

I tried searching, but did not find a specific post that could answer my question.
For my MacOS app, I have an external framework residing in /Library/Frameworks that I am linking to.
The app runs fine from Xcode. The app runs fine by itself on my dev system.
If I copy the app bundle over to another machine, and also copy over the external framework to /Library/Frameworks area (so it has a similar setup to my dev machine), the app crashes when it tries to perform the task that uses the external framework.

What's weird is that the app does not crash on the other machine if run from the terminal, or through gdb. It only crashes on the feature using the external framework when launched from the Finder. I made sure permissions etc are all open.
The crash is of BAD_ACCESS (SIGSEGV) type and the feature involves using the framework to write out a file.
Any thoughts about what could be causing the crash/how to go about debugging this?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼泪淡了忧伤 2025-01-04 06:16:42

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

The most likely difference you're running into is working directories -- launching an application manually from the terminal will run it in whatever directory you happen to be in at the time, while launching it normally (e.g, by double-clicking it in the Finder) will start it up with a working directory of /. Make sure you aren't using any relative paths by mistake.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文