一个项目的多个应用程序

时间:2012-04-16 18:54:06

标签: objective-c xcode build-process

我有一点问题..我知道有一个问题,我只是不知道它是什么。

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

  • 一组50-80左右的图像,它们组合了每个机场的地图。每个应用程序中的文件名都相同。 (我该如何解决?)
  • 应用程序的名称
  • Default.png(当然还有iPad和视网膜的那些)
  • 应用程序图标
  • 详细信息页面的内容(存在于.plist文件中)
  • "关于"的内容页面返回应用程序的页面
  • 一些本地化内容,引用应用程序目标返回机场。
  • 当然是配置文件。

跟踪这些事情只是一个痛苦的屁股,所以我希望有1个代码库的项目,只需添加图像和细节(如上所述),并出现新版本。当我"存档"时,我希望构建所有应用程序并准备好发送给苹果(我必须手动完成)。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

在使用多个目标和条件编译之前,我已经这样做了。每个可交付成果需要一个目标。您可以按常规方式为每个目标配置名称,图标等。

  

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

将图像保存在不同的目录中,并且每个目标只添加该应用的图像。如果您可以从文件中加载该技术,该技术也适用于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
}

答案 1 :(得分:0)

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