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

我们有一个相当丰富的电子学习应用程序,主要使用cocos2d.目前我们是alpha,想要设置我们的项目结构,所以我们也可以建立一个Mac版本来定位到Mac App Store.它在大约80%的cocos2d与UIKit中的一些初始屏幕将不得不移植到Mac(重写).

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

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

情况进一步复杂化是我们目前使用cocos2d作为iOS应用程序的静态库.我们还有一个名为CoreInfrastructure的库,它具有我们在所有项目中使用的大量代码.最近我已经知道,我可以创建一个项目,以同时构建一个针对Mac的框架,并从同一个代码库中构建一个针对iOS的库.这是通过从框架项目开始并添加目标来构建iOS的静态库来完成的.

所以只是想让大家的意见和见解.任何人都知道在上述选择中要注意的任何注意事项?任何正在建设Mac和iOS应用商店的人都会同时关心分享他们的结构?添加一个目标在我们的图书馆代码工作…是应用程序的方式吗?

存档和发行版是否存在任何问题?

提前致谢.

解决方法

对于应用程序,使用两个单独的项目.在一个项目中为iOS和Mac使用多个目标是非常有用的,如果他们共享一个库或框架.然而,在你的顶级应用程序中几乎没有什么是共享的. UIKit代码需要完全重写才能使用AppKit,依赖关系会有所不同,甚至大部分的项目设置都会有所不同.

当然,如果你真的想要一次看到所有的东西,你可以将平台特定的应用程序项目和所有共享的依赖库/框架项目放在一个工作区中.这更是一个工作作风的问题.如果你想经常在两者之间来回切换,这是最有意义的.如果您想简化您正在查看的内容,可以将它们放在共享许多相同项目的单独工作空间中.单独的工作空间的缺点是项目只能一次在一个工作区中打开,以便您有效地只能一次工作.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...