Sobes.tech
Middle

Πώς αλλάζετε το εικονίδιο της εφαρμογής ανάλογα με το περιβάλλον;

sobes.tech AI

Απάντηση από AI

Ανάλογα με το περιβάλλον (π.χ., Dev, Staging, Prod), μπορείτε να χρησιμοποιήσετε:

  1. Δημιουργία ξεχωριστών στόχων (Targets) για κάθε περιβάλλον.
  2. Χρήση αρχείων διαμόρφωσης (.xcconfig).
  3. Προσθήκη προσαρμοσμένων κλειδιών στο 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.