expo / expo/eas-cli

EAS Metadata: support Google Play (Data safety + store listing via androidpublisher write APIs)

Open
#4,173 1 comment 0 reactions 0 assignees View on GitHub
stale
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Summary

`eas metadata` manages the Apple App Store only. `eas metadata:push` has no Google Play path (the CLI exposes no `--platform android`, and the docs state under EAS Metadata that "The Google Play Store is one of those features currently not implemented"). This forces manual Play Console work for every Android release, including the first-release app-content declarations.

### The concrete, already-automatable part

Google exposes a service-account-writable endpoint for the Data safety declaration:

```
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/dataSafety
{ "safetyLabels": "" }
```

(scope `https://www.googleapis.com/auth/androidpublisher`). I verified a Play service account can write it — an invalid body returns `400 Invalid safety labels declaration`, not `401/403`, and a correctly-formatted CSV passes format validation. The Main store listing is similarly writable via `edits.listings`.

EAS Metadata could wrap these to push the Data safety declaration and the Play store listing from `store.config`, exactly as it already syncs Apple metadata — covering the majority of Android first-release setup friction.

### Out of scope (no Google API exists)

Content rating, target audience, financial-features, and health declarations remain Console-only in Google's API, so those can't be automated by anyone today. This request is specifically about the surfaces Google *does* expose (Data safety + store listing).

### Why it matters

For a new app's first release, the parts EAS could drive (Data safety + listing) are exactly the ones that currently require a manual Console pass. Wrapping the existing `androidpublisher` write APIs in `eas metadata` would close most of that gap for paying EAS customers.

### Environment
- `eas-cli` 21.7.x
- Verified against `androidpublisher` v3 (dataSafety endpoint, docs last updated 2025-05-21)

Contributor guide

Open the contributing guide

Research direction

Start at the existing eas metadata:push entry point and its store.config handling, then compare the Apple metadata path with Google’s androidpublisher dataSafety and edits.listings APIs. Verify the Android publisher authentication scope and confirm that Data safety CSV content and the Main store listing can be pushed, while unsupported declarations remain out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, typescript
Domain
cli, mobile
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.