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:
- Izveidot atsevišķus mērķus (Targets) katrai videi.
- Izmantot konfigurācijas failus (
.xcconfig). - 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 Filevai pievienot atslēguCFBundleIconFilesun norādīt ikonas faila nosaukumu. .xcconfigfailos katrai videi definēt mainīgo, kas norāda uz atbilstošoInfo.plist.- Galvenā mērķa Build Settings iestatīt
Info.plist Fileuz${INFO_PLIST_FILE}(kurINFO_PLIST_FILEir 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.