1---
2title: Get started with EAS Metadata
3sidebar_title: Get started
4description: Learn how to automate and maintain your app store presence from the command line with EAS Metadata.
5---
6
7import { BoxLink } from '~/ui/components/BoxLink';
8import { Terminal } from '~/ui/components/Snippet';
9
10> **warning** EAS Metadata is in beta and subject to breaking changes.
11
12EAS Metadata enables you to automate and maintain your app store presence from the command line. It uses a [**store.config.json**](./config.mdx#static-store-config) file containing all required app information instead of going through multiple different forms. It also tries to find common pitfalls that could cause app rejections with built-in validation.
13
14## Prerequisites
15
16EAS Metadata is available starting from EAS CLI >= 0.54.0, and _currently_ only supports the Apple App Store.
17
18> Using VS Code? Install the [VS Code Expo plugin](https://github.com/expo/vscode-expo#readme) for auto-complete, suggestions, and warnings in your **store.config.json** files.
19
20## Create the store config
21
22Let's start by creating our **store.config.json** file in the root directory of your project. This file holds all the information you want to upload to the app stores.
23
24If you already have an app in the stores, you can pull the information into a store config by running:
25
26<Terminal cmd={['$ eas metadata:pull']} />
27
28If you don't have an app in the stores yet, EAS Metadata can't generate the store config for you. Instead, create a new store config file.
29
30```json store.config.json
31{
32  "configVersion": 0,
33  "apple": {
34    "info": {
35      "en-US": {
36        "title": "Awesome App",
37        "subtitle": "Your self-made awesome app",
38        "description": "The most awesome app you've ever seen",
39        "keywords": ["awesome", "app"],
40        "marketingUrl": "https://example.com/en/promo",
41        "supportUrl": "https://example.com/en/support",
42        "privacyPolicyUrl": "https://example.com/en/privacy"
43      }
44    }
45  }
46}
47```
48
49> By default, EAS Metadata uses the **store.config.json** file at the root of your project. You can change the name and location of this file by setting the **eas.json** [`metadataPath`](../../submit/eas-json.mdx#metadatapath) property.
50
51## Update the store config
52
53Now it's time to edit the **store.config.json** file and customize it to your app needs. You can find all available options in the [store config schema](./schema.mdx).
54
55## Upload a new app version
56
57Before pushing the **store.config.json** to the app stores, you must upload a new binary of your app. For more information, see [uploading new binaries to stores](../../submit/introduction.mdx).
58
59After the binary is submitted and processed, we can push the store config to the app stores.
60
61## Upload the store config
62
63When you are happy with the **store.config.json** settings, we can send it to the app stores. You can push the store config to the app stores by running:
64
65<Terminal cmd={['$ eas metadata:push']} />
66
67If EAS Metadata runs into any issues with your store config, it will warn you when running this command. When there are no errors, or you confirm to push it with possible issues, it will try to upload as much as possible.
68
69When the store config partially fails, you can change the store config and retry. `eas metadata:push` can be used to retry pushing the missing items.
70
71## Next steps
72
73<BoxLink
74  title="Customize the store config"
75  href="/eas/metadata/config"
76  description="Customize the store config to adapt EAS Metadata to your preferred workflow."
77/>
78
79<BoxLink
80  title="Store config schema"
81  href="/eas/metadata/schema"
82  description="Explore all configurable options EAS Metadata has to offer."
83/>
84