2010-02-21 37 views
6

我的问题是这样的:我有一个为iPhone设计的应用程序,我决定分叉代码,换句话说,我将在这个初始阶段开发两个版本的应用程序,一个用于iPhone,另一个用于iPad。iPhone和iPad - 我如何分叉代码?

我的问题是这样的:我如何分叉代码?我想继续为这两个版本使用一个项目,但很显然,我将不得不为iPhone和其他版本专门为iPad编写代码部分,当然,这两个版本都有很多相同的部分。

我该如何做,而不会造成代码混乱?

什么是最佳实践?谢谢你的帮助。

回答

2

与多个目标的问题是,它可能与冲突分销模式。

据我所知,iPad和iPhone应用程序将作为单个二进制文件分发。应用程序已决定是否在运行时显示iPad或iPod用户界面。

这意味着,如果你不希望有在商店,“富” &“富的iPad版”不同的应用程式,你不能使用多个目标和你不小心将一个代码工作基础。

我有点讨厌这个,因为在应用程序中可能有很多有条件的东西。如果iPad做到这一点,否则做到这一点。如果iPhone然后显示这个视图控制器,否则显示另一个。我不会觉得这会导致很好的代码。

所以我现在想的是在中间做一些事情:我将基本上创建两个代码库,并且在应用程序的某个地方,我会决定去完整的iPad或iPhone代码路径。

+0

Apple文档没有说应用程序必须作为单个二进制文件分发。反之。它表明决定是由开发人员采取的。我认为未来会有更多设备出现,所以在添加第三个设备类别时,情况会变得更糟。 – SpaceDog 2010-02-21 18:55:22

+0

是的,你是对的。这是一个开发者的选择。 – 2010-02-21 19:56:33

3

你可以配置你的XCode项目使用多个目标, 那么你可以指定一些源代码文件,一个目标或另一个或两个

+0

两个问题:1)我该怎么做那个任务2)那部分代码是什么。我可以将部分代码分配给一个目标还是另一个? (编译这个中频ipad或者如果iphone)...这是怎么做到的?谢谢。 – SpaceDog 2010-02-21 16:39:04

1

我不是iPhone开发人员,但是从St3fan表明(它必须作为单个二进制文件分发),这些看起来像是工厂模式的经典案例。任何不同的事情都可以通过两种不同的方式实现(使用通用接口),并且工厂根据是否在iPhone或iPad上吐出不同的实现。通用代码不需要改变,因此可以保持原样。

1

我回答你的观点: 1)“我该怎么办分配” 你必须从项目菜单 在我的情况下创建一个新的目标我用两个不同的目标 为iPhone游戏(正常免费(精简版))

so I created a second Target of Type Application 
    this will add a Target to the Groups & Files panel 
    and will create a new Info.plist file 

    in the Group&File you can show more columns (by right clicking) 
    on "Group&Files"), here you have to show the "Target Memebership column" 
    for each file you can decide if it is part of a target by pressing the 
    corresponding check box 

2)“怎么样代码的部分” 我不知道,如果用于开发的iPad应用,目前的Beta SDK包含一些的#define,你可以编译 在测试期间每种情况下你都可以在目标级别设置一些专门的#define 并测试是做一些条件编译

你可以找到关于建设有多个目标应用 的dedcated苹果文档 你可以从iPhone开发中心 donwload它,你需要阅读本指南 非常详细的信息“的Xcode项目管理指南“

+0

谢谢!!!!!!!!! – SpaceDog 2010-02-22 19:47:25