Middle
Πώς αλλάζετε το εικονίδιο της εφαρμογής ανάλογα με το περιβάλλον;
sobes.tech AI
Απάντηση από AI
Ανάλογα με το περιβάλλον (π.χ., Dev, Staging, Prod), μπορείτε να χρησιμοποιήσετε:
- Δημιουργία ξεχωριστών στόχων (Targets) για κάθε περιβάλλον.
- Χρήση αρχείων διαμόρφωσης (
.xcconfig). - Προσθήκη προσαρμοσμένων κλειδιών στο
Info.plist.
Διαδικασία:
- Δημιουργήστε διπλότυπα του κύριου στόχου της εφαρμογής για κάθε περιβάλλον.
- Στις ρυθμίσεις κάθε νέου στόχου, αλλάξτε το
Info.plist Fileή προσθέστε το κλειδίCFBundleIconFilesκαι καθορίστε το όνομα του αρχείου εικονιδίου. - Στα αρχεία
.xcconfigγια κάθε περιβάλλον, ορίστε μια μεταβλητή που αναφέρεται στο αντίστοιχοInfo.plist. - Στις ρυθμίσεις κατασκευής του κύριου στόχου, ορίστε το
Info.plist Fileσε${INFO_PLIST_FILE}(όπουINFO_PLIST_FILEείναι μια μεταβλητή από το.xcconfig).
Παράδειγμα .xcconfig για Dev:
// DEV.xcconfig
INFO_PLIST_FILE = Info_Dev.plist
Παράδειγμα 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> // Όνομα asset για το Dev εικονίδιο
</array>
</dict>
</dict>
...
</dict>
</plist>
Μία εναλλακτική προσέγγιση χωρίς διπλασιασμό στόχων είναι η χρήση scripts κατά τη διάρκεια της κατασκευής που τροποποιούν το Info.plist ανάλογα με τη τρέχουσα διαμόρφωση. Ωστόσο, η προσέγγιση με ξεχωριστούς στόχους είναι πιο σαφής και υποστηρίζεται.
Για τη διαχείριση των assets εικονιδίων, μπορείτε να χρησιμοποιήσετε ξεχωριστά Asset Catalogs για κάθε στόχο ή διαμόρφωση, ή να ονομάσετε τα σύνολα εικονιδίων με μοναδικά ονόματα (AppIconDev, AppIconStaging, AppIconProd) και να καθορίσετε το αντίστοιχο όνομα στο Info.plist.