2009-11-27 40 views
18

Uluslararası bir iPhone projem var. Çeşitli ${lang}.lproj/InfoPlist.strings dosyalarında tek bir anahtar var, CFBundleName = "My App Name".XCode - Çoklu hedefler, Çoklu * uluslararası * isimler?

Tek bir hedef için gayet iyi çalışıyor, ancak birden çok hedef için çalışmasını sağlayamıyorum.

Ana hedef için birkaç tercüme InfoPlistMyApp.strings dosya ve artı sürüm için birkaç InfoPlistMyAppLite.strings dosya istiyorum. Ama nasıl kurulacağını anlayamıyorum. InfoPlist.strings adı taş olarak ayarlanmış gibi görünüyor, bu yüzden dinamik olarak değiştiremiyorum.

Herhangi bir fikrin var mı?

cevap

34

Bu işe yarayacaksa oldukça kolaydır. Her bir set farklı bir Xcode grubunda bulunduğu sürece, her bir hedefe tekabül eden birçok InfoPlist.strings'iniz olabilir ve her biri uluslararasılaştırılabilir, . Xcode gruba

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

İthalat bu dosyaları, bu nedenle şuna benzer::

Böyle bir dizin yapısını kurma

alt text

sağ tıklayın "Gruplar & Files" (Xcode'un sol üst köşesinde) ve "Hedef Üyelik" in görünür olduğundan emin olun, ardından hedeflerinize gidin, her biri için doğru dizeler kümesinin etkinleştirildiğini kontrol edin.

+0

mükemmel çalışır! –

+0

, bunun xcode 9 üzerinde çalıştığını doğrulayabilir. –