【问题标题】:Building an app bundle for a non-Cocoa C++ Mac Project为非 Cocoa C++ Mac 项目构建应用程序包
【发布时间】:2012-07-06 15:52:34
【问题描述】:

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

【问题讨论】:

    标签: c++ macos xcode4.3 building


    【解决方案1】:

    执行此操作的最简单方法是创建一个 Cocoa 项目,转到“构建阶段”并从“与库的链接”构建阶段删除所有 Objective-c 框架,删除由模板(应用程序委托等),然后将 main.c 替换为您的 main.cpp 文件。

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

    还有一堆 .plist 条目被 Cocoa 使用,您将不再需要它们。但它们不会影响 OS X 处理您的应用程序的方式。

    【讨论】:

    • 这很完美,正是我想要的,在对存档的设置进行了一些调整后,它给了我我的 .app,非常感谢!
    • 谢谢!害怕我必须学习 Objectice-C++ 才能做到这一点。如果这么简单,为什么在 Xcode 中创建新的 Cocoa 应用程序时不能选择 C++ 作为语言?
    【解决方案2】:

    我正在寻找 XCode 设置解决方案,但这是我目前创建应用程序的方法:

    您必须将二进制文件(比如说myapp)放入“MyApp.app/Contents/MacOS/myapp”,然后它现在可以作为 .app 启动。这是一个技巧。

    【讨论】:

      【解决方案3】:

      只需转到左侧文件导航器中的目标文件夹,那里就会列出一个可执行文件。左键单击该可执行文件,然后单击“在查找器中显示”。 (我是从记忆中描述的,所以我可能有错误的确切细节。)文件路径非常长(涉及任意字母数字路径名,我不知道为什么),所以你可能赢了'不能用命令行找到它。

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

      【讨论】:

      • 投反对票的人愿意就我的回答有什么问题提出建议吗?
      • 不确定是谁做的,但我尝试了您的建议但没有成功:(当我尝试运行它时说“不再支持经典环境”所以我想您的信息只是过时了。此外,仅重命名 Unix exe 并不会创建应用程序的内部文件结构,这似乎只有 Xcode 才能做到。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多