Подтвердить что ты не робот

XCode - несколько целей, множественные * интернационализированные * имена?

У меня есть международный проект iPhone. В различных файлах ${lang}.lproj/InfoPlist.strings у меня есть один ключ, CFBundleName = "My App Name".

Это работает отлично для одной цели, но я не могу заставить ее работать для нескольких целей.

Я хотел бы иметь несколько переведенных InfoPlistMyApp.strings файлов для основной цели, плюс несколько файлов InfoPlistMyAppLite.strings для облегченной версии. Но я не могу понять, как его настроить. Имя InfoPlist.strings похоже на камень, поэтому я не могу заменить его динамически.

Любые идеи?

4b9b3361

Ответ 1

Оказывается, это довольно легко, если кропотливо. У вас может быть несколько InfoPlist.strings, с одной включенностью для каждой цели, и каждый из них может быть интернационализирован, если каждый набор находится в другой группе Xcode.

Настройте структуру каталогов следующим образом:

.../AppName/
            en.lproj/InfoPlist.strings  <-- Contains CFBundleDisplayName
            it.lproj/InfoPlist.strings  <-- ...
            ...
.../AppNameLite/
            en.lproj/InfoPlist.strings  <-- ...
            it.lproj/InfoPlist.strings  <-- ...
            ...

Импортируйте эти файлы в группы Xcode, чтобы он выглядел так:

alt text

Щелкните правой кнопкой мыши "Группы и файлы" (вверху слева от Xcode) и убедитесь, что "Целевое членство" видно, а затем пройдите по целевым объектам, проверяя правильный набор строк для каждого.