Objective c 一个项目中的多个应用程序

Objective c 一个项目中的多个应用程序,objective-c,xcode,build-process,Objective C,Xcode,Build Process,我有个小问题。。我知道有个解决办法,但我不知道是什么 问题如下。几周前(2个左右),由于服务器端的数据问题,我不得不从appstore中删除4个应用程序。我决定将所有应用程序升级到最新版本,同时赋予它们一些新功能。(我有6个相同的应用程序,针对不同的机场)。这些版本之间的差异如下: 一组50-80张左右的图像,结合了每个机场的地图。每个应用程序中的文件名都相同。(我该如何解决这个问题?) 应用程序的名称 Default.png(当然还有那些用于iPad和retina的文件) 应用程序图标 详细

我有个小问题。。我知道有个解决办法,但我不知道是什么

问题如下。几周前(2个左右),由于服务器端的数据问题,我不得不从appstore中删除4个应用程序。我决定将所有应用程序升级到最新版本,同时赋予它们一些新功能。(我有6个相同的应用程序,针对不同的机场)。这些版本之间的差异如下:

  • 一组50-80张左右的图像,结合了每个机场的地图。每个应用程序中的文件名都相同。(我该如何解决这个问题?)
  • 应用程序的名称
  • Default.png(当然还有那些用于iPad和retina的文件)
  • 应用程序图标
  • 详细信息页面的内容(存在于.plist文件中)
  • “关于”页面的内容,其中该页面引用回应用程序
  • 一些本地化的内容,引用回应用程序目标的机场
  • 当然,是配置文件
跟踪这些东西只是一个麻烦,所以我想有一个项目和一个代码库,只需添加图像和细节(如上所述)和新版本出现。当我“归档”时,我希望所有的应用程序都能被构建并准备好发送给苹果(我必须手动完成)


我怎样才能做到这一点呢?

您不能对所有主代码使用一个版本控制分支,然后在填充数据的地方将其分叉六次(每个机场一次)?一旦进行了新的代码更改,只需将更改从主分支推送到分支,就完成了。

在使用多目标和条件编译之前,我已经完成了这项工作。每个可交付成果需要一个目标。您可以用通常的方式为每个目标配置名称、图标等

一组50-80张左右的图像,结合了每个机场的地图。每个应用程序中的文件名都相同。(我该如何解决这个问题?)

将图像保存在不同的目录中,并且仅为每个目标添加该应用程序的图像。如果您可以从文件加载about页面的内容,则此技术也适用于about页面的内容


我还使用条件编译,以便为每个应用程序的常量定义不同的值

为此,将一个设置添加到其他C标志和其他C++标志中,以标识应用程序。比如:

-DAPP_VARIANT=1
然后,在代码中,您可以使用以下方法实现任何特定于应用程序的行为:

- (id)init
{
#if APP_VARIANT == 1
    self->server_url = [[NSURL URLWithString:@"http://app1.example.com"] retain];
#elif APP_VARIANT == 2
    self->server_url = [[NSURL URLWithString:@"http://app2.example.com"] retain];
#endif
}

你可以为那项工作使用不同的目标,不幸的是我不知道。也许这对我很有帮助,你知道有什么好的指南告诉我如何配置我的项目吗?只是添加了一个链接到我的commentHoi Tom!好主意,但是我想从一个项目中控制它。每一行额外的代码,每一次额外的鼠标拖动,任何需要额外时间的事情都是不必要的。我想按预期的方式来做,而不是使用变通方法。到目前为止,我一直在做一些变通方法,应用商店中有14个应用程序,它变得很混乱。自动化拉取等听起来相当容易。Xcode有自己的命令行生成工具(
xcodebuild
)。怎么这么乱?它允许您随时更改主代码或仅更改一个机场。首先。。。它仍然在SVN中,而不是Git或Mecurial(我更喜欢Mecurial)。第二,我相信这就是我们的目标。。。正确的?我只是不知道如何使用它们。我对Xcode目标的体验是糟糕到可怕的。这样使用它们是可能的,但你肯定会遇到麻烦。太棒了。我要试一试。我想我可以使用目标名称,对吗?目标名称有宏吗?如果是这样的话,那么你可以使用它,并且不再需要APP_变体。