为非Cocoa C++Mac项目构建应用程序捆绑包

Building an app bundle for a non-Cocoa C++ Mac Project

本文关键字:应用程序 构建 Cocoa C++Mac 项目 为非      更新时间:2023-10-16

我正在Xcode 4.3.3中构建一个C++OpenGL纸牌游戏,目的是在64位和32位Mac上运行它,这不是我的问题。我的问题是,在这个程序的开发过程中,我已经到了一个地步,我想测试它是否能在不同的32位Mac(我的是64位)上工作,而不必安装Xcode。很明显,这需要我将其导出为.app。我可以在经过一些cd后,通过终端从我的项目中找到并运行导出的Unix可执行文件,但这对我和程序的预期受众来说都是不可取的。我搜索了谷歌和Stack Overflow,寻找任何能帮助我的东西,但所有提到存档的东西似乎都没有成功,我认为这是因为它是一个C++命令行工具项目。那么,有人能帮我把我的项目导出为.app吗?提前谢谢。

最简单的方法是创建一个Cocoa项目,进入"构建阶段",从"与库链接"构建阶段删除所有objective-c框架,删除模板添加的任何objective-c文件(应用程序委托等),然后用main.cpp文件替换main.c。

Cocoa项目没有什么特别之处,只是它链接到Cocoa并从其main()函数调用NSApplicationMain()。

还有一堆你不再需要的Cocoa使用的.plist条目。但它们不会影响OSX处理应用程序的方式。

我正在搜索XCode Settings解决方案,但以下是我目前创建应用程序的方法:

你必须把你的二进制文件(比如myapp)放在"MyApp.app/Contents/MacOS/MyApp"中,然后它就可以作为.app启动了。这是一个技巧。

只需转到左侧文件导航器中的targets文件夹,就会在那里列出一个可执行文件。左键单击该可执行文件,然后单击"在查找器中显示"。(我是从内存中描述的,所以我可能有错误的确切细节。)文件路径长得离谱(涉及到一个任意的字母数字路径名,我不知道为什么),所以你可能无法用命令行找到它。

如果你愿意,你可以将文件的扩展名从none更改为".app",这应该不会影响文件的性质。此外,如果你想要一个自定义图标,你可以在查找器中"获取信息",然后单击信息窗口中的图标,并使用Cmd-V将其粘贴进去(显然你必须将图标复制到剪贴板)。在Xcode中也有一种方法可以做到这一点,但我不记得了。