2015-01-09 57 views
0

我想知道在Git中处理子模块时,在Xcode中处理本地化资源的最佳方法是什么。这就是我的意思:Xcode Git子模块中的本地化资源

比方说,我有一个iOS应用程序,其中的文件作为Xcode项目存在,有各种子目录等等。我们将其称为香蕉应用程序。

然而,我发现,我需要建立苹果葡萄,并柠檬应用。幸运的是,我的Bananas应用程序中的大部分代码都是可重用的。

我从香蕉拿走了可重复使用的代码,并在git中创建了一个名为Fruit的子模块。我所有的四款美味应用都有Fruit子模块。

在文件系统中,它看起来像这样:

projects 
└── bananas 
    ├── Xcode.project 
    ├── file1 
    ├── file2 
    └── fruit 
     ├── codeFile1 
     ├── codeFile2 
     ├── xib1 
     └── xib2 

现在我需要我的应用程序的所有四个翻译成多种语言。首先,我进入香蕉并将NSLocalizedString加到所有代码文件中,其中包括水果子模块中的codeFile1codeFile2。我还打开xib1xib2的基本本地化。这将xib移动到一个子文件夹Base.lproj,并让我通过Editor > Export for Localization创建.strings文件,并为不同的本地化创建备用xib文件。

在Git中,我将这些更改提交到我的Bananas存储库,并将更改提交到Fruit存储库并更新Bananas中的指针以指向此新的子模块提交。一切都很好,在那里正常。这里是我的目录结构是什么样子现在:

projects 
└── bananas 
    ├── Xcode.project 
    ├── file1 
    ├── file2 
    └── fruit 
     ├── codeFile1 
     ├── codeFile2 
     └── Base.lproj 
      ├── xib1 
      └── xib2 

然而,当我开始在苹果工作,并更新果子模块指针到最新版本,各种目录的修改(项目搬进Base.lproj)不反映在我的Xcode.project文件中。这些文件显示为失踪,因为它们已被我更新我的Git子模块。

Xcode.project文件中包含这些更改到目录结构的最佳方法是什么,这样我就不会在Git子模块中执行本地化来破坏项目?

我最好的猜测是,也许我可以为Fruit创建一个子项目文件,然后在每个应用程序中包含Fruit项目。这是这样做的方式,还是有更好的方法?

回答

0

我过去采用的方法是为每个子模块创建一个新的.project。具有“实例”project和一个或多个子模块“基类”projects的应用程序变成xcworkspace

+0

好的,这或多或少是我的想法。你可能会详细讨论你是如何完成这个的?我正在努力弄清楚这一点。 (Xcode 6.1.1) – 2015-01-09 20:54:03