Sobes.tech
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:

  1. Her ortam için ayrı hedefler (Targets) oluşturmak.
  2. Yapılandırma dosyaları (.xcconfig) kullanmak.
  3. Info.plist iç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 veya CFBundleIconFiles anahtarını ekleyin ve ikon dosyasının adını belirtin.
  • Her ortam için .xcconfig dosyalarında, ilgili Info.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 (burada INFO_PLIST_FILE, .xcconfig iç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.