Middle
Ortamına bağlı olarak uygulama simgesini nasıl değiştirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Ortamına bağlı olarak (örneğin, Dev, Staging, Prod), şu yöntemler kullanılabilir:
- Her ortam için ayrı hedefler (Targets) oluşturmak.
- Yapılandırma dosyaları (
.xcconfig) kullanmak. Info.plistiçine özel anahtarlar eklemek.
İşlem:
- Ana uygulama hedefinin kopyalarını her ortam için oluşturun.
- Her yeni hedefin ayarlarında
Info.plist File'ı değiştirin veyaCFBundleIconFilesanahtarını ekleyin ve ikon dosyasının adını belirtin. - Her ortam için
.xcconfigdosyalarında, ilgiliInfo.plist'e işaret eden bir değişken tanımlayın. - Ana hedefin yapılandırma ayarlarında
Info.plist File'ı${INFO_PLIST_FILE}olarak ayarlayın (buradaINFO_PLIST_FILE,.xcconfigiçindeki bir değişkendir).
Dev için .xcconfig örneği:
// DEV.xcconfig
INFO_PLIST_FILE = Info_Dev.plist
Info_Dev.plist örneği:
<!-- Info_Dev.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
...
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIconDev</string> // Dev için ikon asset adı
</array>
</dict>
</dict>
...
</dict>
</plist>
Alternatif olarak, hedefleri çoğaltmadan, yapı sırasında Info.plist'i güncelleyen betikler kullanmak mümkündür. Ancak, hedeflerle çalışmak daha açık ve desteklenmektedir.
İkonlar için asset kataloglarını her hedef veya yapılandırma için ayrı tutabilir veya ikon setlerini benzersiz isimlerle (AppIconDev, AppIconStaging, AppIconProd) adlandırıp, Info.plist'te uygun ismi belirtebilirsiniz.