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:
- Kreiranje odvojenih ciljeva (Targets) za svako okruženje.
- Korišćenje konfiguracionih fajlova (
.xcconfig). - 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 Fileili dodajte ključCFBundleIconFilesi navedite ime fajla ikone. - U
.xcconfigfajlovima za svako okruženje, definišite promenljivu koja ukazuje na odgovarajućiInfo.plist. - U podešavanjima za build glavnog cilja, postavite
Info.plist Filena${INFO_PLIST_FILE}(gde jeINFO_PLIST_FILEpromenljiva 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.