应用程序从 Xcode 构建时运行良好,不会直接从.app运行
Application runs fine when built from Xcode, won't run directly from the .app
在Xcode中使用C MAC应用程序。当我打运行时,一切都很好(调试和发布模式)。但是,当我进入Finder进入产品/发行文件夹并直接双击.App时,该应用会立即关闭错误(应用程序意外戒烟。单击报告以查看更多详细信息)。当我单击报告时,上的代码行似乎表示它没有找到我的资源文件,但是当我从中构建/运行相同的精确应用时,它会发现它们正常 xcode。这是我如何使用代码中资源文件的示例:
std::ifstream file;
file.open("AppName.app/Contents/Resources/Saves/1.svd");
//do stuff
file.close();
有人有任何想法,为什么要双击Xcode刚创建的.App与从Xcode运行它的结果不同?
也不确定这是否是问题的一部分,但是我必须从.app文件(appname.app/contents/resources/resources/saves/saves/1.svd)引用资源文件夹似乎很奇怪。我希望这条路径相对于这样的.app/contents/macos中的可执行文件(../resources/saves/1.svd),但这也无法正常工作。
我有类似的问题,花了一些时间研究我最终使用苹果对象的不同选项。我需要获取资源文件夹:
#ifdef __APPLE__
#include "CoreFoundation/CoreFoundation.h"
#endif
然后实际片段为:
#ifdef __APPLE__
char path[FILENAME_MAX];
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX)){
//
//log("CFURLGetFileSystemRepresentation returned false. Path:%s", path);
exit(0);
}
CFRelease(resourcesURL);
chdir(path);
//log("Current path:%s", path);
#endif
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- Mac os x app bundle 在下载并运行时崩溃,但在终端或更改 Info.plist 时运行良好
- 从Qt/C++-App并行运行两个Lua函数
- 应用程序从 Xcode 构建时运行良好,不会直接从.app运行
- 如何在 Google App Engine Python 2.7 运行时中模拟 GNU C 库 drem / 余数函数