Sobes.tech
Middle

Kako promeniti ikonu aplikacije u zavisnosti od okruženja?

sobes.tech АИ

Одговор од АИ

U zavisnosti od okruženja (na primer, Dev, Staging, Prod), mogu se koristiti:

  1. Kreiranje odvojenih ciljeva (Targets) za svako okruženje.
  2. Korišćenje konfiguracionih fajlova (.xcconfig).
  3. Dodavanje prilagođenih ključeva u Info.plist.

Proces:

  • Napravite duplikate glavnog cilja aplikacije za svako okruženje.
  • U podešavanjima svakog novog cilja, izmenite Info.plist File ili dodajte ključ CFBundleIconFiles i navedite ime fajla ikone.
  • U .xcconfig fajlovima za svako okruženje, definišite promenljivu koja ukazuje na odgovarajući Info.plist.
  • U podešavanjima za build glavnog cilja, postavite Info.plist File na ${INFO_PLIST_FILE} (gde je INFO_PLIST_FILE promenljiva iz .xcconfig).

Primer .xcconfig za Dev:

// DEV.xcconfig
INFO_PLIST_FILE = Info_Dev.plist

Primer Info_Dev.plist:

<!-- 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> // Naziv asset-a za Dev ikonu
			</array>
		</dict>
	</dict>
	...
</dict>
</plist>

Alternativno, bez dupliranja ciljeva, moguće je koristiti skripte tokom build procesa koje menjaju Info.plist u zavisnosti od trenutne konfiguracije. Međutim, pristup sa odvojenim ciljevima je jasniji i podržan.

Za upravljanje asset-ima ikona, možete koristiti odvojene Asset Catalogs za svaki cilj ili konfiguraciju, ili imenovati setove ikona na jedinstven način (AppIconDev, AppIconStaging, AppIconProd) i navesti odgovarajući naziv u Info.plist.