Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supply: Publishing Draft Google Play Listing fails if App Content not filled out yet #20630

Open
4 tasks done
chrisvire opened this issue Sep 7, 2022 · 6 comments
Open
4 tasks done

Comments

@chrisvire
Copy link

New Issue Checklist

Issue Description

When publishing Google Play Listing information via supply during the draft stage (release_status=draft), we have not added information yet in the App Content section.

The Google Play APIs have started rejecting updates to Google Play Listing if these sections are not completed. I think this is really good to have these errors early if the app has already been published in the past and this is a new update. It will keep the app from being rejected (and then it is harder to update since the update has to be done manually).

Is there a way that these App Content checks can be skipped during draft or a parameter to control it?

Here are two examples:

E, [2022-09-07T12:07:32.195016 #303] ERROR -- : Error - #<Google::Apis::ClientError: Invalid request status_code: 400 header: #<HTTP::Message::Headers:0x0000562f928f72e0 @http_version="1.1", @body_size=0, @chunked=false, @request_method="POST", @request_uri=#<Addressable::URI:0x1b08 URI:https://androidpublisher.googleapis.com/androidpublisher/v3/applications/org.ethiopiascripture.suq.bible/edits/01189738052676795884:commit?>, @request_query=nil, @request_absolute_uri=nil, @status_code=400, @reason_phrase="Bad Request", @body_type=nil, @body_charset=nil, @body_date=nil, @body_encoding=#<Encoding:UTF-8>, @is_request=false, @header_item=[["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["Content-Type", "application/json; charset=UTF-8"], ["Content-Encoding", "gzip"], ["Date", "Wed, 07 Sep 2022 12:07:32 GMT"], ["Server", "ESF"], ["Cache-Control", "private"], ["X-XSS-Protection", "0"], ["X-Frame-Options", "SAMEORIGIN"], ["X-Content-Type-Options", "nosniff"], ["Alt-Svc", "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000,h3-Q050=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""], ["Transfer-Encoding", "chunked"]], @dumped=false> body: "{\n  \"error\": {\n    \"code\": 400,\n    \"message\": \"This app has no data safety declaration.\",\n    \"status\": \"INVALID_ARGUMENT\"\n  }\n}\n">

�[31m
[!] Google Api Error: Invalid request - This app has no data safety declaration.�[0m
E, [2022-09-01T15:17:26.001641 #307] ERROR -- : Error - #<Google::Apis::ClientError: Invalid request status_code: 400 header: #<HTTP::Message::Headers:0x000055ee94fab9b8 @http_version="1.1", @body_size=0, @chunked=false, @request_method="POST", @request_uri=#<Addressable::URI:0x1ae0 URI:https://androidpublisher.googleapis.com/androidpublisher/v3/applications/org.sil.tyx/edits/13350196087392110750:commit?>, @request_query=nil, @request_absolute_uri=nil, @status_code=400, @reason_phrase="Bad Request", @body_type=nil, @body_charset=nil, @body_date=nil, @body_encoding=#<Encoding:UTF-8>, @is_request=false, @header_item=[["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["Content-Type", "application/json; charset=UTF-8"], ["Content-Encoding", "gzip"], ["Date", "Thu, 01 Sep 2022 15:17:25 GMT"], ["Server", "ESF"], ["Cache-Control", "private"], ["X-XSS-Protection", "0"], ["X-Frame-Options", "SAMEORIGIN"], ["X-Content-Type-Options", "nosniff"], ["Alt-Svc", "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000,h3-Q050=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""], ["Transfer-Encoding", "chunked"]], @dumped=false> body: "{\n  \"error\": {\n    \"code\": 400,\n    \"message\": \"This app has no privacy policy.\",\n    \"status\": \"INVALID_ARGUMENT\"\n  }\n}\n">

�[31m
[!] Google Api Error: Invalid request - This app has no privacy policy.�[0m
Command executed

SUPPLY_METADATA_PATH=play-listing
SUPPLY_VERSION_CODE=4
SUPPLY_JSON_KEY=/secrets/google_play_store/webonary_sil/playstore_api.json
SUPPLY_TRACK=production
SUPPLY_SKIP_UPLOAD_APK=true
SUPPLY_RELEASE_STATUS=draft
SUPPLY_AAB=/artifacts/Teke_Dictionary-1.0.aab
SUPPLY_PACKAGE_NAME=org.sil.tyx
fastlane supply

Complete output when running fastlane, including the stack trace and command used
 + fastlane supply
[15:16:25]: �[33mGet started using a Gemfile for fastlane https://docs.fastlane.tools/getting-started/ios/setup/#use-a-gemfile�[0m

+------------------------------------+--------------------------------------+
| �[32mSummary for supply 2.209.1�[0m |
+------------------------------------+--------------------------------------+
| package_name | org.sil.tyx |
| version_code | 4 |
| release_status | draft |
| track | production |
| metadata_path | play-listing |
| json_key | /secrets/google_play_store/webonary |
| | _sil/playstore_api.json |
| apk | Teke_Dictionary-1.0.apk |
| aab | /artifacts/Teke_Dictionary-1.0.aab |
| skip_upload_apk | true |
| skip_upload_aab | false |
| skip_upload_metadata | false |
| skip_upload_changelogs | false |
| skip_upload_images | false |
| skip_upload_screenshots | 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 |
+------------------------------------+--------------------------------------+

[15:16:28]: Preparing aab at path '/artifacts/Teke_Dictionary-1.0.aab' for upload...
[15:17:13]: Updating track 'production'...
[15:17:13]: Preparing to upload for language 'en-US'...
[15:17:14]: Uploading image file play-listing/en-US/images/featureGraphic.png...
[15:17:15]: Uploading image file play-listing/en-US/images/icon.png...
[15:17:16]: Uploading screenshot play-listing/en-US/images/phoneScreenshots/Screenshot 2022-08-17 143720.png...
[15:17:21]: Uploading screenshot play-listing/en-US/images/phoneScreenshots/Screenshot 2022-08-17 143835.png...
[15:17:22]: Uploading screenshot play-listing/en-US/images/phoneScreenshots/Screenshot 2022-08-17 143911.png...
[15:17:23]: Uploading screenshot play-listing/en-US/images/phoneScreenshots/Screenshot 2022-08-17 143956.png...
[15:17:24]: Updating changelog for '4' and language 'en-US'...
[15:17:24]: Uploading all changes to Google Play...
E, [2022-09-01T15:17:26.001641 #307] ERROR -- : Error - #<Google::Apis::ClientError: Invalid request status_code: 400 header: #<HTTP::Message::Headers:0x000055ee94fab9b8 @http_version="1.1", @body_size=0, @chunked=false, @request_method="POST", @request_uri=#<Addressable::URI:0x1ae0 URI:https://androidpublisher.googleapis.com/androidpublisher/v3/applications/org.sil.tyx/edits/13350196087392110750:commit?>, @request_query=nil, @request_absolute_uri=nil, @status_code=400, @reason_phrase="Bad Request", @body_type=nil, @body_charset=nil, @body_date=nil, @body_encoding=#Encoding:UTF-8, @is_request=false, @header_item=[["Vary", "Origin"], ["Vary", "X-Origin"], ["Vary", "Referer"], ["Content-Type", "application/json; charset=UTF-8"], ["Content-Encoding", "gzip"], ["Date", "Thu, 01 Sep 2022 15:17:25 GMT"], ["Server", "ESF"], ["Cache-Control", "private"], ["X-XSS-Protection", "0"], ["X-Frame-Options", "SAMEORIGIN"], ["X-Content-Type-Options", "nosniff"], ["Alt-Svc", "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43""], ["Transfer-Encoding", "chunked"]], @dumped=false> body: "{\n "error": {\n "code": 400,\n "message": "This app has no privacy policy.",\n "status": "INVALID_ARGUMENT"\n }\n}\n">

�[31m
[!] Google Api Error: Invalid request - This app has no privacy policy.�[0m

Environment

 
🚫 fastlane environment 🚫

Stack

Key Value
OS debian_based buster/sid
Ruby 2.7.1
Bundler? false
Git git version 2.17.1
Installation Source ~/.rbenv/versions/2.7.1/bin/fastlane
Host Ubuntu 18.04.4 LTS debian_based buster/sid (4.14.281-212.502.amzn2.x86_64)
Ruby Lib Dir ~/.rbenv/versions/2.7.1/lib
OpenSSL Version OpenSSL 1.1.1 11 Sep 2018
Is contained false
Is homebrew false
Is installed via Fabric.app false

System Locale

Variable Value
LANG en_US.UTF-8 ✅
LC_ALL en_US.UTF-8 ✅
LANGUAGE en_US:en 🚫

fastlane files:

No Fastfile found

No Appfile found

fastlane gems

Gem Version Update-Status
fastlane 2.209.1 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
did_you_mean 1.4.0
atomos 0.1.3
CFPropertyList 3.0.5
claide 1.1.0
colored2 3.1.2
nanaimo 0.3.0
rexml 3.2.5
xcodeproj 1.22.0
rouge 2.0.7
xcpretty 0.3.0
terminal-notifier 2.0.0
unicode-display_width 1.8.0
terminal-table 1.8.0
plist 3.6.0
public_suffix 5.0.0
addressable 2.8.1
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.4
colored 1.2
highline 2.0.3
commander 4.6.0
excon 0.92.4
faraday-em_http 1.0.0
faraday-em_synchrony 1.0.0
faraday-excon 1.1.0
faraday-httpclient 1.0.1
faraday-multipart 1.0.4
faraday-net_http 1.0.1
faraday-net_http_persistent 1.2.0
faraday-patron 1.0.0
faraday-rack 1.0.0
faraday-retry 1.0.3
ruby2_keywords 0.0.5
faraday 1.10.2
unf_ext 0.0.8.2
unf 0.1.4
domain_name 0.5.20190701
http-cookie 1.0.5
faraday-cookie_jar 0.0.7
faraday_middleware 1.2.0
fastimage 2.2.6
gh_inspector 1.1.3
json 2.3.0
mini_magick 4.11.0
naturally 2.2.1
rubyzip 2.3.2
security 0.1.3
xcpretty-travis-formatter 1.0.1
dotenv 2.8.1
bundler 2.1.4
simctl 1.6.8
jwt 2.4.1
uber 0.1.0
declarative 0.0.20
trailblazer-option 0.1.2
representable 3.2.0
retriable 3.1.2
mini_mime 1.1.2
memoist 0.16.2
multi_json 1.15.0
os 1.1.4
signet 0.17.0
googleauth 1.2.0
httpclient 2.8.3
webrick 1.6.0
google-apis-core 0.7.0
google-apis-playcustomapp_v1 0.10.0
google-apis-androidpublisher_v3 0.25.0
google-cloud-env 1.6.0
google-cloud-errors 1.2.0
google-cloud-core 1.6.0
google-apis-iamcredentials_v1 0.13.0
google-apis-storage_v1 0.17.0
rake 13.0.1
digest-crc 0.6.4
google-cloud-storage 1.38.0
emoji_regex 3.2.3
jmespath 1.6.1
aws-partitions 1.621.0
aws-eventstream 1.2.0
aws-sigv4 1.5.1
aws-sdk-core 3.133.0
aws-sdk-kms 1.58.0
aws-sdk-s3 1.114.0
uri 0.10.0
forwardable 1.3.1
logger 1.4.2
cgi 0.1.0
date 3.0.0
timeout 0.1.0
stringio 0.1.0
ipaddr 1.2.2
openssl 2.1.2
zlib 1.1.0
mutex_m 0.1.0
ostruct 0.2.0
strscan 1.0.3
io-console 0.5.6
delegate 0.1.0
fileutils 1.4.1
etc 1.1.0
singleton 0.1.0
open3 0.1.0
yaml 0.1.0
psych 3.1.0

generated on: 2022-09-01

@Luke-SF
Copy link

Luke-SF commented Sep 16, 2022

Is there a way one may set the required "privacy policy" and "data safety declaration" sections through supply command?

@Luke-SF
Copy link

Luke-SF commented Sep 26, 2022

code error

Code error what? That there isn't a way to set data safety or there isn't even an API for it?

@chrisvire
Copy link
Author

@Madisenes: Where do you see:

this error message tells you how to fix the problem: by making an HTTPS call, instead of HTTP.

The error message is indicating that "privacy policy" and "data safety declaration" sections have to be filled out prior to publishing. This is a change in behavior. We have always been able to publish a DRAFT before filling out the "App content" section.

@Luke-SF:

Is there a way one may set the required "privacy policy" and "data safety declaration" sections through supply command?

I do not believe that the Google Play Store APIs provide this. It would be great if we could automate the updating of the "App content" section.

We have worked around this by changing our procedures to fill out the "App content" section when we are creating the App Store entry.

@fastlane-bot
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

Friendly reminder: contributions are always welcome! Check out CONTRIBUTING.md for more information on how to help with fastlane and feel free to tackle this issue yourself 💪

This issue will be auto-closed if there is no reply within 1 month.

@Luke-SF
Copy link

Luke-SF commented Oct 27, 2022

@Luke-SF:

Is there a way one may set the required "privacy policy" and "data safety declaration" sections through supply command?

I do not believe that the Google Play Store APIs provide this. It would be great if we could automate the updating of the "App content" section.

We have worked around this by changing our procedures to fill out the "App content" section when we are creating the App Store entry.

Where is that Google api documented, and maybe someone may be able to check that out and set a way to set that?

@dmsherazi
Copy link

To resolve this, the Data Safety Declaration needs to be manually completed within the Play Console. Once that's done, this should prevent the issue from appearing in Fastlane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants
@chrisvire @Luke-SF @dmsherazi @fastlane-bot and others