用于iOS和OS X开发的共享代码库

pou*_*v23 14 macos xcode multiplatform code-sharing ios

我们有一个相当丰富的电子学习应用程序,主要使用cocos2d构建.目前我们处于alpha状态并希望设置我们的项目结构,因此我们还可以构建一个Mac版本来定位Mac App商店.在UIKit中有大约80%的cocos2d和一些初始屏幕,必须移植到Mac(重写).

从单个代码库中定位Mac和iOS应用商店的建议设置是什么?我假设选择是:

  1. 在同一应用程序源代码根文件夹中创建2个xCode项目,并使用每个项目构建单个目标.这将是:Project.xcodeproj和ProjectMac.xcodeproj
  2. 将新的Mac目标添加到我们现有的iPad应用程序项目中,然后调整目标成员资格以获得所需的结果.这只是:Project.xcodeproj

更复杂的是,我们目前使用cocos2d作为iOS应用程序的静态库.我们还有一个名为CoreInfrastructure的库,它包含我们在所有项目中使用的大量代码.最近我发现我可以创建一个项目来同时构建一个面向Mac的框架和一个基于相同代码库的iOS库.这是通过从框架项目开始并添加目标来为iOS构建静态库来完成的.

所以只是想得到每个人的意见和见解.有人知道在上述选择中要注意的任何警告吗?任何为Mac和iOS应用程序商店构建的人都会同时分享他们的结构吗?在我们的库代码上添加一个目标...是应用程序的方法吗?

是否存在任何选择存档和分发版本的问题?

提前致谢.

Tom*_*Bąk 18

WWDC会话"在iOS和OS X之间共享代码"回答了本主题中的所有基本问题.iWork团队介绍了他们如何通过iOS和OS X的共享代码库创建Pages,Keynote和Numbers.

他们的项目的关键是使用:

  • 为iOS和OS X分离Xcode目标
  • .framework的形式分离共享代码的项目
  • 从上面的角度看目标对框架的依赖性

我鼓励观看视频或阅读本次会议的成绩单:

WWDC 2014在iOS和OS X之间共享代码

ASCIIWWDC成绩单


tor*_*ons 3

对于应用程序,使用两个单独的项目。如果 iOS 和 Mac 共享一个库或框架,那么在一个项目中使用多个 iOS 和 Mac 目标非常有用。然而,在您的顶级应用程序中几乎没有任何内容是共享的。UIKit 代码需要完全重写才能使用 AppKit,依赖关系会有所不同,甚至大多数项目设置也会有所不同。

当然,如果您确实想立即查看所有内容,您可以将特定于平台的应用程序项目和所有共享的依赖库/框架项目放在一个工作区中。这更多的是一个工作作风的问题。如果您想经常在两者之间来回切换,这是最有意义的。如果您想简化所查看的内容,可以将它们放在共享许多相同项目的单独工作区中。单独的工作区的缺点是,一个项目一次只能在一个工作区中打开,因此您实际上一次只能在一个工作区上工作。