我想知道在处理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子模块中的codeFile1
和codeFile2
。我还为xib1
和xib2
启用了基本本地化。这会将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项目。这是这样做的方式,还是有更好的方法?
答案 0 :(得分:0)
我过去接触过的方法是为每个子模块创建一个新的.project
。应用程序变为xcworkspace
,其中包含"实例" project
和一个或多个子模块"基类" project
秒。