Git子模块中的Xcode本地化资源

时间:2015-01-09 20:10:34

标签: ios xcode git localization git-submodules

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

假设我有一个iOS应用程序,其中文件作为Xcode项目存在,具有各种子目录等等。我们称之为 Bananas 应用。

然而,我发现我需要构建 Apple Grape Lemon 应用。幸运的是,我的Bananas应用程序中的大部分代码都是可重用的。

我从Bananas获取了可重用的代码,并在git中创建了一个名为 Fruit 的子模块。我所有四个可爱的应用程序都有Fruit子模块。

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

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

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

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

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

但是,当我开始使用Apple并将Fruit子模块指针更新为最新版本时,各种目录修改(移动到Base.lproj中的项目)不会反映在我的Xcode.project文件中。这些文件显示为缺失,因为我已经更新了我的Git子模块。

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

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

1 个答案:

答案 0 :(得分:0)

我过去接触过的方法是为每个子模块创建一个新的.project。应用程序变为xcworkspace,其中包含"实例" project和一个或多个子模块"基类" project秒。