Sobes.tech
Middle

Kuidas muuta rakenduse ikooni sõltuvalt keskkonnast?

sobes.tech AI

Vastus AI-lt

Sõltuvalt keskkonnast (näiteks Dev, Staging, Prod) saab kasutada:

  1. Eraldi sihtmärkide (Targets) loomist iga keskkonna jaoks.
  2. Konfiguratsioonifailide (.xcconfig) kasutamist.
  3. Kohandatud võtmete lisamist Info.plist-i.

Protsess:

  • Kopeerida põhisihtmärgi koopiad iga keskkonna jaoks.
  • Muuta iga uue sihtmärgi Info.plist File või lisada võti CFBundleIconFiles ja määrata ikoonifaili nimi.
  • .xcconfig failides määrata iga keskkonna jaoks muutuja, mis viitab vastavale Info.plist-ile.
  • Põhisihitri Build Settings seadistada Info.plist File väärtusele ${INFO_PLIST_FILE} (kus INFO_PLIST_FILE on .xcconfig-st muutuja).

Näide .xcconfig Dev:

// DEV.xcconfig
INFO_PLIST_FILE = Info_Dev.plist

Näide 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> // Dev ikona nimi
			</array>
		</dict>
	</dict>
	...
</dict>
</plist>

Alternatiivne lähenemine ilma sihtmärkide dubleerimiseta – kasutades ehituse ajal skripte, mis muudavad Info.plist-i vastavalt praegusele konfiguratsioonile. Kuid, eraldi sihtmärkidega on see selgem ja toetatud lähenemine.

Ikonide ja Asset Catalogs kasutamiseks iga sihtmärgi või konfiguratsiooni jaoks saab kasutada eraldi Asset Catalogs või nimetada ikonikogusid unikaalselt (AppIconDev, AppIconStaging, AppIconProd) ning määrata sobiva nime Info.plist-is.