Sobes.tech
Middle

Kā mainīt lietotnes ikonu atkarībā no vides?

sobes.tech AI

Atbilde no AI

Atkarībā no vidē (piemēram, Dev, Staging, Prod) var izmantot:

  1. Izveidot atsevišķus mērķus (Targets) katrai videi.
  2. Izmantot konfigurācijas failus (.xcconfig).
  3. Pievienot pielāgotus atslēgas Info.plist.

Process:

  • Izveidot galvenā mērķa kopijas katrai videi.
  • Nomainīt katra jaunā mērķa Info.plist File vai pievienot atslēgu CFBundleIconFiles un norādīt ikonas faila nosaukumu.
  • .xcconfig failos katrai videi definēt mainīgo, kas norāda uz atbilstošo Info.plist.
  • Galvenā mērķa Build Settings iestatīt Info.plist File uz ${INFO_PLIST_FILE} (kur INFO_PLIST_FILE ir mainīgais no .xcconfig).

Piemērs .xcconfig Dev:

// DEV.xcconfig
INFO_PLIST_FILE = Info_Dev.plist

Piemērs 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> // Ikonas Dev
			</array>
		</dict>
	</dict>
	...
</dict>
</plist>

Alternatīvs veids bez mērķu dublēšanas – izmantojot skriptus būvniecības laikā, kas maina Info.plist atkarībā no pašreizējās konfigurācijas. Tomēr, ar atsevišķiem mērķiem, tas ir skaidrāks un atbalstāmāks veids.

Lai ērtāk strādātu ar ikonām, var izmantot atsevišķus Asset Catalogs katram mērķim vai konfigurācijai, vai arī nosaukt ikonu kopas unikāli (AppIconDev, AppIconStaging, AppIconProd) un norādīt atbilstošo nosaukumu Info.plist.