问题 为Mac OS X和iOS开发


我正在开发一款我最终可用于Mac OS X和iOS的游戏。最好的方法是什么?我是否应该首先关注一个操作系统并获得完美的1.0版本,然后移植到另一个操作系统,或者(2)我应该从一开始就尝试同时开发这两个操作系统吗?

如果(1),我应该首先定位哪个OS,即哪个移植方向最简单?

如果(2),我是否需要在每个操作系统的XCode中使用单独的项目?如果是这样,我如何只维护两个项目之间共享的平台无关代码的一个副本?


2537
2018-06-28 18:45


起源

可能重复 将iOS(iPhone)应用程序移植到mac? - PengOne
可能重复 有没有办法将iOS应用程序转换为Mac OS X应用程序? - PengOne
问题不是如何移植,而是如何组织代码。 - Eiko
您是否考虑过专门为此目的设置游戏制造商? Unity3d之类的东西? - Andrew


答案:


我通常并行编写代码,有时在Mac上启动,有时在iOS上启动。大多数核心功能(即非GUI)在两个平台上几乎相同,但有时也是如此 一些 一部分缺少功能。然后我尝试从较差的平台开始,以便代码将在两者上运行。

并行工作会带来另一个好处:您需要考虑良好的抽象,否则您会很快感到烦恼的重复代码。多个目标确实有助于良好的结构。

至于多个目标 - 是的,理论上这适用于Xcode。只要我将“核心代码”放在静态库中并保持所有内容自动更新,这真是一种痛苦(一次又一次地丢失引用)。

我的 设置如下:

MainWorkspace
   CoreFunctionsMacLibProject
   CoreFunctionsIOSLibProject
   TheApplicationMacProject
   TheApplicationIOSProject

核心部分的共享代码位于共享文件夹中,只要所有内容都在同一工作区中,更新就很容易。如果没有单独的库,它可以很容易地工作,我也碰巧在不同的项目/工作区中使用它们。

到目前为止一切顺利。谈论2-4个库和几个应用程序项目。只是我的经历。工作区使这种方法非常灵活,因为您可以将项目放在多个工作区中。


14
2018-06-28 18:57



嗨,您可以与示例分享一些链接或示例代码吗?我的问题是我已经拥有稳定的ios应用程序,并希望并行开发os x版本,但我想在两个版本之间共享一些类如'ApiManager'或'DataManager',因为逻辑是相同的。你能帮我吗? - Sasha Kid