fastlane / fastlane

🚀 The easiest way to automate building and releasing your iOS and Android apps
https://fastlane.tools
MIT License
39.54k stars 5.7k forks source link

[supply] "Google Api Error: Invalid request - Your icon does not apply the new icon specification" when uploading an app icon for a new store listing #20359

Closed markmuniz closed 2 years ago

markmuniz commented 2 years ago

New Issue Checklist

Issue Description

Running supply to upload an app icon will fail if the store listing did not previously have an app icon. This is reproducible on existing store listings by deleting an app icon, or by creating a new app listing. It does not appear to be an issue with the app icon, since I can manually upload the file to the Google Play console. It seems as though others are having the same issue.

Steps to recreate:

  1. Delete the app icon from the Google Play Store Listing. It doesn't appear that the app icon can be deleted for the default language once it has been added, so you may have to try to delete the icon for a second language if available.
  2. Run supply to upload the app icon. The error occurs.
Command executed

fastlane supply run --package_name {PACKAGE_NAME} --json_key {PATH_TO_JSON_KEY} --skip_upload_aab true --skip_upload_screenshots true --skip_upload_changelogs true --skip_upload_metadata true --version_code {VERSION_CODE}

Complete output when running fastlane, including the stack trace and command used
fastlane supply run --package_name {PACKAGE_NAME} --json_key {PATH_TO_JSON_KEY} --skip_upload_aab true --skip_upload_screenshots true --skip_upload_changelogs true --skip_upload_metadata true --version_code {VERSION_CODE}  
[✔] 🚀 
[13:50:47]: Get started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile

+------------------------------------+---------------------------------------------------+
|                               Summary for supply 2.206.2                               |
+------------------------------------+---------------------------------------------------+
| package_name                       | package_name          |
| json_key                           | json_key |
| skip_upload_aab                    | true                                              |
| skip_upload_screenshots            | true                                              |
| skip_upload_changelogs             | true                                              |
| skip_upload_metadata               | true                                              |
| version_code                       | version_code                                              |
| release_status                     | completed                                         |
| track                              | production                                        |
| metadata_path                      | ./fastlane/metadata/android                       |
| skip_upload_apk                    | false                                             |
| skip_upload_images                 | false                                             |
| track_promote_release_status       | completed                                         |
| validate_only                      | false                                             |
| check_superseded_tracks            | false                                             |
| timeout                            | 300                                               |
| deactivate_on_promote              | true                                              |
| changes_not_sent_for_review        | false                                             |
| rescue_changes_not_sent_for_review | true                                              |
| ack_bundle_installation_warning    | false                                             |
+------------------------------------+---------------------------------------------------+

[13:50:50]: Preparing to upload for language 'en-CA'...
[13:50:51]: Uploading image file ./fastlane/metadata/android/en-CA/images/featureGraphic.jpg...
[13:50:53]: Uploading image file ./fastlane/metadata/android/en-CA/images/icon.png...
[13:50:55]: Preparing to upload for language 'en-GB'...
[13:50:55]: Uploading image file ./fastlane/metadata/android/en-GB/images/featureGraphic.jpg...
[13:50:57]: Uploading image file ./fastlane/metadata/android/en-GB/images/icon.png...
[13:50:59]: Preparing to upload for language 'en-US'...
[13:50:59]: Uploading image file ./fastlane/metadata/android/en-US/images/featureGraphic.jpg...
[13:51:02]: Uploading image file ./fastlane/metadata/android/en-US/images/icon.png...
[13:51:03]: Preparing to upload for language 'fr-CA'...
[13:51:04]: Uploading image file ./fastlane/metadata/android/fr-CA/images/featureGraphic.jpg...
[13:51:06]: Uploading image file ./fastlane/metadata/android/fr-CA/images/icon.png...
[13:51:07]: Uploading all changes to Google Play...

[!] Google Api Error: Invalid request - Your icon does not apply the new icon specification. Please follow the instructions at https://developer.android.com/google-play/resources/icon-design-specifications#api. On June 17, this API will automatically apply the new specification.

Environment

✅ fastlane environment ✅ ### Stack | Key | Value | | --------------------------- | -------------------------------------------------------------- | | OS | 11.6.5 | | Ruby | 2.6.3 | | Bundler? | false | | Git | git version 2.32.0 (Apple Git-132) | | Installation Source | /usr/local/bin/fastlane | | Host | macOS 11.6.5 (20G527) | | Ruby Lib Dir | /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib | | OpenSSL Version | LibreSSL 2.8.3 | | Is contained | false | | Is homebrew | false | | Is installed via Fabric.app | false | | Xcode Path | /Applications/Xcode.app/Contents/Developer/ | | Xcode Version | 13.2.1 | | Swift Version | 5.5.2 | ### System Locale | Variable | Value | | | -------- | ----------- | - | | LANG | en_US.UTF-8 | ✅ | | LC_ALL | | | | LANGUAGE | | | ### fastlane gems | Gem | Version | Update-Status | | -------- | ------- | ------------- | | fastlane | 2.206.2 | ✅ Up-To-Date | ### Loaded fastlane plugins: **No plugins Loaded**
Loaded gems | Gem | Version | | ------------------------------- | ------------ | | did_you_mean | 1.3.0 | | rouge | 2.0.7 | | xcpretty | 0.3.0 | | terminal-notifier | 2.0.0 | | unicode-display_width | 1.7.0 | | terminal-table | 1.8.0 | | plist | 3.5.0 | | CFPropertyList | 2.3.6 | | public_suffix | 4.0.5 | | addressable | 2.8.0 | | multipart-post | 2.0.0 | | word_wrap | 1.0.0 | | optparse | 0.1.1 | | tty-screen | 0.8.1 | | tty-cursor | 0.7.1 | | tty-spinner | 0.9.3 | | artifactory | 3.0.15 | | babosa | 1.0.3 | | colored | 1.2 | | highline | 2.0.3 | | commander | 4.6.0 | | excon | 0.76.0 | | faraday | 1.0.1 | | unf_ext | 0.0.7.7 | | unf | 0.1.4 | | domain_name | 0.5.20190701 | | http-cookie | 1.0.3 | | faraday-cookie_jar | 0.0.6 | | faraday_middleware | 1.0.0 | | fastimage | 2.2.0 | | gh_inspector | 1.1.3 | | json | 2.1.0 | | mini_magick | 4.10.1 | | naturally | 2.2.0 | | rubyzip | 2.3.0 | | security | 0.1.3 | | xcpretty-travis-formatter | 1.0.0 | | dotenv | 2.7.6 | | bundler | 1.17.2 | | simctl | 1.6.8 | | jwt | 2.2.1 | | uber | 0.1.0 | | declarative | 0.0.20 | | declarative-option | 0.1.0 | | representable | 3.0.4 | | retriable | 3.1.2 | | mini_mime | 1.0.2 | | multi_json | 1.15.0 | | signet | 0.14.0 | | memoist | 0.16.2 | | os | 1.1.1 | | googleauth | 0.16.2 | | httpclient | 2.8.3 | | webrick | 1.4.2 | | google-apis-core | 0.3.0 | | google-apis-playcustomapp_v1 | 0.3.0 | | google-apis-androidpublisher_v3 | 0.6.0 | | google-cloud-env | 1.3.3 | | google-cloud-errors | 1.0.1 | | google-cloud-core | 1.5.0 | | google-apis-iamcredentials_v1 | 0.4.0 | | google-apis-storage_v1 | 0.4.0 | | rake | 13.0.1 | | digest-crc | 0.6.1 | | google-cloud-storage | 1.31.1 | | emoji_regex | 3.0.0 | | jmespath | 1.4.0 | | aws-partitions | 1.351.0 | | aws-eventstream | 1.1.0 | | aws-sigv4 | 1.2.1 | | aws-sdk-core | 3.104.3 | | aws-sdk-kms | 1.36.0 | | aws-sdk-s3 | 1.75.0 | | rexml | 3.2.5 | | nanaimo | 0.3.0 | | colored2 | 3.1.2 | | claide | 1.0.3 | | atomos | 0.1.3 | | xcodeproj | 1.21.0 | | forwardable | 1.2.0 | | logger | 1.3.0 | | stringio | 0.0.2 | | ipaddr | 1.2.2 | | openssl | 2.1.2 | | ostruct | 0.1.0 | | strscan | 1.0.0 | | date | 2.0.0 | | io-console | 0.4.7 | | fileutils | 1.1.0 | | etc | 1.0.1 | | zlib | 1.0.0 | | libxml-ruby | 3.2.1 | | psych | 3.1.0 | | mutex_m | 0.1.0 |
*generated on:* **2022-06-06**
gooolz commented 2 years ago

I am experiencing this same issue. I have reached out to Google but have been waiting to hear back from a technical engineer for a few days now.

What they sent as a response: "Thanks for contacting Google Play Developer Support to report the behavior you're seeing with uploading an app icon using the API.

I’ve documented your issue and escalated it to our technical team for further investigation. Our team is working to resolve this issue for you as soon as possible.

I appreciate your patience and I’ll let you know the moment I have an update. "

xalikoutis commented 2 years ago

+1 same here

chrisvire commented 2 years ago

+1 same here

Update 1: We tried changing the legacy icons to squircles created by https://icon.kitchen, but that still failed.

Here is a build log (which includes fastlane env, SUPPLY_ variable, and supply output): https://sil-prd-aps-files.s3.amazonaws.com/prd/jobs/publish_scriptureappbuilder_2910/10755/console.log

Update 2: Looking more into this issue (and reading the page https://developer.android.com/google-play/resources/icon-design-specifications), it seems to be related to the Google Play App Icon (in the store listing) and not the legacy icons in the app. We did try using IconKitchen to replace the legacy icons and that didn’t work.

The odd thing is that there is a section in the document for “Instructions for API users” which reference dates in 2019 (not 2022).

Update 3: We manually uploaded icons (and other minimal playstore listing information) and then tried to run the automated process to get all the playstore listing information uploaded and that worked ... but this is not good.

gooolz commented 2 years ago

+1 same here

Update 1: We tried changing the legacy icons to squircles created by https://icon.kitchen, but that still failed.

Here is a build log (which includes fastlane env, SUPPLY_ variable, and supply output): https://sil-prd-aps-files.s3.amazonaws.com/prd/jobs/publish_scriptureappbuilder_2910/10755/console.log

Update 2: Looking more into this issue (and reading the page https://developer.android.com/google-play/resources/icon-design-specifications), it seems to be related to the Google Play App Icon (in the store listing) and not the legacy icons in the app. We did try using IconKitchen to replace the legacy icons and that didn’t work.

The odd thing is that there is a section in the document for “Instructions for API users” which reference dates in 2019 (not 2022).

Update 3: We manually uploaded icons (and other minimal playstore listing information) and then tried to run the automated process to get all the playstore listing information uploaded and that worked ... but this is not good.

Your Update 3 is what we have been doing as well. Have removed the branding part to get the other metadata filled in then created a UI automation to fill in the branding. Quite annoying but gets the work done.

chrisvire commented 2 years ago

@gooolz I would appreciate hearing what Google has to say.

gooolz commented 2 years ago

@gooolz I would appreciate hearing what Google has to say.

@chrisvire I will post here once I get an updated response from them. Hopefully they get back to me soon🤞

sonjz commented 2 years ago

we use fastlane for IOS, but use google-api-ruby-client directly, i was noticing this issue at the step where the icon.png was uploaded (512x512, sRGB, PNG32), was working since 2019 when that change went in. i sense a regression.

i imagine something as simple as updating a lib like imagemagick that does image verification not returning the same response might trigger the generic external error. the 403 on the error is weird, i'd figure it would be 401.

my report posted above ^

vanniktech commented 2 years ago

When using:

fastlane supply --skip_upload_images false --skip_upload_screenshots false

I get the exact same failure. Turning it off works though:

fastlane supply --skip_upload_images true --skip_upload_screenshots false

Edit: On a second note, it seems like screenshots weren't really correctly uploaded :/

sonjz commented 2 years ago

found similar workaround, had to manually update the Main listing in Google Play Console so the icon was already there (lots of required fields) then i was able to run automation to properly update the listing.

in my code i normally clear the entire listing and repush all the details, which is why all by apps new/old were getting this error.

sonjz commented 2 years ago

google must noticed regression and patched it, appears to be working now.

chrisvire commented 2 years ago

@sonjz Or it is past June 17 and we will run into this again at the beginning of June next year... ;-)

@gooolz Did you hear back from Google on the issue?

sonjz commented 2 years ago

@chrisvire this was the old message from June 17th, 2019, it was a regression. https://developer.android.com/distribute/google-play/resources/icon-design-specifications#instructions_for_api_users

it should be fixed now. confirmed for fastlane: https://github.com/fastlane/fastlane/discussions/20354#discussioncomment-2992591

i was also able to confirm directly with the google publisher api: https://github.com/googleapis/google-api-ruby-client/issues/10035#issuecomment-1162560085

markmuniz commented 2 years ago

This seems to be working on my end as well now.