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