It looks like applications built with iOS 11.0 SDK requires the app icons to be in the compiled assets catalog (Assets.car). As the Assets.car is non-editable and since Chrome for iOS use different app icons for each channel, fixing this issue requires doing to things:
1. adding support for compiling app icons in the compiled assets catalog to gn,
2. adding support for building multiple variant of the same app for different channels.
For 1., this involves:
- finding the name of the .appiconset in all the listed .xcassets,
- passing the --app-icon & --output-partial-info-plist flags to actool,
- using the generated partial Info.plist to tweak the app Info.plist,
For 2., this involves:
- adding support for channel to ios_app_bundle and ios_appex_bundle,
- ensuring that if multiple channels are built only one "link" is performed,
- ensuring that .appex from the same channel are used.
It looks like applications built with iOS 11.0 SDK requires the app icons to be in the compiled assets catalog (Assets.car). As the Assets.car is non-editable and since Chrome for iOS use different app icons for each channel, fixing this issue requires doing two things:
1. adding support for compiling app icons in the compiled assets catalog to gn,
2. adding support for building multiple variant of the same app for different channels.
For 1., this involves:
- finding the name of the .appiconset in all the listed .xcassets,
- passing the --app-icon & --output-partial-info-plist flags to actool,
- using the generated partial Info.plist to tweak the app Info.plist,
For 2., this involves:
- adding support for channel to ios_app_bundle and ios_appex_bundle,
- ensuring that if multiple channels are built only one "link" is performed,
- ensuring that .appex from the same channel are used.
I just checked that extensions don't have their own app icons and they reuse the application icon from the main app.
We must validate that this is possible with the assets catalog.
The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src.git/+/2d534feab40dd363424f5437ec4ba3579e172d55
commit 2d534feab40dd363424f5437ec4ba3579e172d55
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 20 11:28:54 2017
Add support for --partial-info-plist to compile_xcassets.py.
The asset catalog compiler (actool) can generate a partial Info.plist
file that needs to be merged with the application Info.plist at build
time (this is needed to support application icon in Assets.car).
Add a --partial-info-plist flag to compile_xcassets.py that can be
used to control the path of the generated partial Info.plist. Also
inspect the list of asset catalogs to be compiled and pass correct
flags to enable their proper treatment by actool (.appiconset and
.launchimage are the only two supported currently).
If --partial-info-plist is not passed or empty, and the compiler
need this flag (i.e. if any special asset catalog is compiled), then
the script create a temporary file and pass it to the compiler.
Bug: 764286
Change-Id: I3f51e5b6ac65919275a3fafb3408d02686105e21
Reviewed-on: https://chromium-review.googlesource.com/668976
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503110}
[modify] https://crrev.com/2d534feab40dd363424f5437ec4ba3579e172d55/build/toolchain/mac/compile_xcassets.py
This bug requires manual review: Less than 16 days to go before AppStore submit on M62
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)
For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
All CLs have been cherry-picked. Note that I had to cherry-pick https://chromium-review.googlesource.com/c/chromium/src/+/685556 to fix a "gn gen error" introduced by the gn roll (the same error happened on the master branch and was fixed but not linked with this issue and I missed it when I listed CLs to cherry-pick).
Comment 1 by sdefresne@chromium.org
, Sep 12 2017