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-დან ცვლადი).

Dev-ისთვის .xcconfig მაგალითი:

// 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> // Dev-ისთვის asset-ის სახელი
			</array>
		</dict>
	</dict>
	...
</dict>
</plist>

სხვა მეთოდი, რომელიც არ საჭიროებს მიზნების დუბლირებას, არის სკრიპტების გამოყენება მშენებლობის დროს, რომლებიც შეცვლიან Info.plist-ს მიმდინარე კონფიგურაციის მიხედვით. თუმცა, მიზნების ცალკე შექმნა უფრო ნათელია და მხარდაჭერილია.

სურათების მართვისთვის, შესაძლებელია თითოეულ მიზნაზე ან კონფიგურაციაზე განთავსდეს ცალკეული Asset Catalogs, ან იკონების ნაკრებები სახელწოდებით (AppIconDev, AppIconStaging, AppIconProd) და შესაბამისი სახელი მიუთითოთ Info.plist-ში.