我注意到这里对每个平台有不同的要求。我想知道是否可以构建单个项目但是有多个目标,其中每个目标是Mac OS X(类似于CD /安装版本),Apple Mac Store和iOS设备。
如果我以错误的方式解决这个问题,那么我很想知道!我主要是在PC上开发,但随着App Store的状态,我希望尽可能多地展开!
答案 0 :(得分:2)
为Mac应用商店和独立分发的Mac应用保留单独的目标非常简单。您只需要确保收据验证码有条件地包含在应用商店目标中,而不是在其他目标中;并且您的自定义许可方案包含在另一方面。如果您在两个目标中定位不同的操作系统,事情会变得复杂一些,但它们并非不可克服:您可以在运行时测试类或选择器的存在,以确保您不会在旧系统上调用更新的API。
顺便说一下,为这些目标提供单独的Info.plist
文件也是值得的。部分原因是您不需要或想要在应用商店目标中包含Sparkle属性等内容,还因为每个目标都应具有唯一的包标识符。如果您安装了一个应用程序商店,它认为它来自商店但实际上并没有这样做,并且您不希望冒险更新程序或Apple尝试更新通过其他机制部署的应用程序。但这并不是关于组织Xcode项目,而是部署问题。
答案 1 :(得分:0)
在大多数情况下,是的。所有Mac / iOS应用程序都可以用Objective-C编写,代码非常相似。但是,您必须记住,iOS设备的屏幕尺寸与Mac不同,甚至相互之间也不同。这意味着输入隐喻是不同的,并且UI是不同的。虽然可以做你想做的事情,但不建议只编码一次并编译三次。
那就是说,我不使用Xcode 4所以我不能告诉你这个。如果您希望为不同的设备执行不同的构建,则需要尽可能单独编写应用程序逻辑和输入逻辑。然后,您创建多个目标,每个目标一个。您为每个目标定义编译器标志。在您的代码中,您将使用这些标志为您的构建使用适当的代码。
答案 2 :(得分:0)
至少从3.2.5开始,这绝对不是问题。您不一定能够在项目范围内应用所有构建设置,但可以按目标指定它们。 只需添加适当类型的目标(Cocoa Touch,Cocoa等)。