1--- 2title: Getting started with EAS Metadata 3sidebar_title: Getting started 4--- 5 6import { BoxLink } from '~/ui/components/BoxLink'; 7import { Terminal } from '~/ui/components/Snippet'; 8 9> **warning** EAS Metadata is in beta and subject to breaking changes. 10 11EAS 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. 12 13## Prerequisites 14 15EAS Metadata is available starting from EAS CLI >= 0.54.0, and _currently_ only supports the Apple App Store. 16 17> 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. 18 19## Create the store config 20 21Let'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. 22 23If you already have an app in the stores, you can pull the information into a store config by running: 24 25<Terminal cmd={['$ eas metadata:pull']} /> 26 27If 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. 28 29```json store.config.json 30{ 31 "configVersion": 0, 32 "apple": { 33 "info": { 34 "en-US": { 35 "title": "Awesome App", 36 "subtitle": "Your self-made awesome app", 37 "description": "The most awesome app you've ever seen", 38 "keywords": ["awesome", "app"], 39 "marketingUrl": "https://example.com/en/promo", 40 "supportUrl": "https://example.com/en/support", 41 "privacyPolicyUrl": "https://example.com/en/privacy" 42 } 43 } 44 } 45} 46``` 47 48> 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. 49 50## Update the store config 51 52Now 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). 53 54## Upload a new app version 55 56Before 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). 57 58After the binary is submitted and processed, we can push the store config to the app stores. 59 60## Upload the store config 61 62When 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: 63 64<Terminal cmd={['$ eas metadata:push']} /> 65 66If 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. 67 68When 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. 69 70## Next 71 72<BoxLink 73 title="Customize the store config" 74 href="/eas/metadata/config" 75 description="Customize the store config to adapt EAS Metadata to your preferred workflow." 76/> 77 78<BoxLink 79 title="Store config schema" 80 href="/eas/metadata/schema" 81 description="Explore all configurable options EAS Metadata has to offer." 82/> 83