EAS 元数据的模式

编辑页面

EAS 元数据中 store config 的参考。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

重要 EAS Metadata 处于 beta 阶段,可能会有破坏性变更。

EAS Metadata 中的商店配置包含了原本需要通过应用商店后台手动提供的信息。 本文档概述了你在商店配置中对象的结构。

如果你使用 VS Code Expo Tools extension,你可以在编辑器中通过自动补全、建议和警告获取所有这些信息。

配置架构

商店配置对象中的一个关键属性是 configVersion 属性。 应用商店可能会要求更多信息,或更改现有信息结构,才能发布你的应用。 此属性有助于对不向后兼容的更改进行版本管理。

EAS Metadata 目前 仅支持 Apple App Store。

PropertyTypeDescription

configVersion

number

enum: 0

EAS Metadata 商店配置架构版本。

apple

object

App Store 的所有可配置属性。

version

string

在同步商店配置中定义的所有元数据时使用的应用版本。

默认情况下,EAS Metadata 会选择应用商店中可用的最新版本。

copyright

string

拥有该应用独占权利的个人或实体名称,前面加上取得该权利的年份。(例如,“2008 Acme Inc.”)

advisory

AppleAdvisory

用于确定应用年龄分级的 App Store 问卷。

categories

AppleCategories

应用在 App Store 中的类别。你可以添加主类别、次类别以及可能的子类别。

info

Map<AppleLanguage, AppleInfo>

你的应用在 App Store 中的本地化展示信息。

release

AppleRelease

所选版本的应用发布策略。

review

AppleReview

供 App Store 审核团队审核应用所需的全部信息,包括联系信息和凭证。(如适用)

Apple advisory

Apple 使用一份复杂的问卷来确定应用的 年龄分级。 App Store 上的家长控制会使用这个计算出的年龄分级。 默认情况下,EAS Metadata 会对每个问题使用限制最少的答案。

使用限制最少答案的完整 advisory
store.config.json
{ "configVersion": 0, "apple": { "advisory": { "alcoholTobaccoOrDrugUseOrReferences": "NONE", "contests": "NONE", "gamblingSimulated": "NONE", "horrorOrFearThemes": "NONE", "matureOrSuggestiveThemes": "NONE", "medicalOrTreatmentInformation": "NONE", "profanityOrCrudeHumor": "NONE", "sexualContentGraphicAndNudity": "NONE", "sexualContentOrNudity": "NONE", "violenceCartoonOrFantasy": "NONE", "violenceRealistic": "NONE", "violenceRealisticProlongedGraphicOrSadistic": "NONE", "gambling": false, "unrestrictedWebAccess": false, "kidsAgeBand": null, "ageRatingOverride": "NONE", "koreaAgeRatingOverride": "NONE" } } }
PropertyTypeDescription

alcoholTobaccoOrDrugUseOrReferences

AppleAgeRating

应用是否包含酒精、烟草或药物使用,或相关内容?

contests

AppleAgeRating

应用是否包含竞赛?

gambling

boolean

你的应用是否包含赌博?

gamblingSimulated

AppleAgeRating

应用是否包含模拟赌博?

horrorOrFearThemes

AppleAgeRating

应用是否包含恐怖或惊悚主题?

kidsAgeBand

AppleKidsAge

当家长访问 App Store 的儿童分类时,他们期望所找到的应用能够保护其子女的数据,仅提供适龄内容,并且在跳转出应用、请求权限或提供购买机会时需要家长验证。

至关重要的是,不得向第三方传输任何可识别个人身份的信息或设备信息,并且广告必须经过人工审核以确保适合相应年龄后才能展示。

了解更多

matureOrSuggestiveThemes

AppleAgeRating

应用是否包含成人或暗示性主题?

medicalOrTreatmentInformation

AppleAgeRating

应用是否包含医疗或治疗信息?

profanityOrCrudeHumor

AppleAgeRating

应用是否包含脏话或粗俗幽默?

ageRatingOverride

AppleAgeRatingOverride

如果你的应用评级为 12+ 或更低,并且你认为其内容可能不适合儿童,你可以手动覆盖年龄分级。

了解更多

koreaAgeRatingOverride

AppleKoreaAgeRatingOverride

如果你的应用评级为 12+ 或更低,并且你认为其内容可能不适合儿童,你可以手动覆盖年龄分级。与 `ageRatingOverride` 相同,但适用于韩国。

了解更多

sexualContentGraphicAndNudity

AppleAgeRating

应用是否包含露骨的色情内容和裸体?

sexualContentOrNudity

AppleAgeRating

应用是否包含色情内容或裸体?

unrestrictedWebAccess

boolean

你的应用是否包含不受限制的网页访问,例如内嵌浏览器?

violenceCartoonOrFantasy

AppleAgeRating

应用是否包含卡通或幻想暴力内容?

violenceRealistic

AppleAgeRating

应用是否包含写实暴力内容?

violenceRealisticProlongedGraphicOrSadistic

AppleAgeRating

应用是否包含持续的露骨或施虐性质的写实暴力内容?

Apple advisory age rating

NameDescription

NONE

适用于完全不涉及该主题的应用。

INFREQUENT_OR_MILD

适用于提及该主题或将其作为非主要功能使用的应用。

FREQUENT_OR_INTENSE

适用于将该主题作为主要功能使用的应用。

Apple advisory kids age

NameDescription

FIVE_AND_UNDER

适用于 5 岁及以下儿童。

SIX_TO_EIGHT

适用于 6 至 8 岁儿童。

NINE_TO_ELEVEN

适用于 9 至 11 岁儿童。

Apple advisory age rating override

NameDescription

NONE

无年龄分级覆盖

SEVENTEEN_PLUS

应用包含可能不适合 17 岁以下儿童的内容。

UNRATED

仅限成人。此内容不能发布到 App Store。它可以发布到 iOS 上的其他应用市场或欧盟地区的网站上。

Apple advisory korea age rating override

NameDescription

NONE

无年龄分级覆盖

FIFTEEN_PLUS

应用包含可能不适合 15 岁以下儿童的内容。

NINETEEN_PLUS

应用包含可能不适合 19 岁以下儿童的内容。

Apple categories

App Store 通过将应用分类到各个类别中,并使用主类别、次类别以及可能的子类别,帮助用户发现新应用。

主类别和次类别
store.config.json
{ "configVersion": 0, "apple": { "categories": ["FINANCE", "NEWS"] } }
主类别、子类别和次类别
store.config.json
{ "configVersion": 0, "apple": { "categories": [["GAMES", "GAMES_CARD", "GAMES_BOARD"], "ENTERTAINMENT"] } }
NameDescription

BOOKS

包含传统以印刷形式提供、并提供额外交互性的内容的应用。

BUSINESS

帮助经营业务的应用,或提供协作、编辑或共享与业务相关内容的方式的应用。

DEVELOPER_TOOLS

帮助用户开发、维护或共享软件的应用。

EDUCATION

提供针对特定技能或主题的交互式学习体验的应用。

ENTERTAINMENT

旨在通过音频、视觉或其他内容娱乐用户的交互式应用。

FINANCE

提供金融服务或信息以帮助用户处理商业或个人财务的应用。

FOOD_AND_DRINK

提供与食物或饮料的准备、消费或评测相关的建议、说明或评论的应用。

GAMES

提供单人或多人交互式体验以用于娱乐目的的应用。

此类别最多可包含 2 个子类别。

GAMES_ACTION GAMES_ADVENTURE GAMES_BOARD GAMES_CARD GAMES_CASINO GAMES_CASUAL GAMES_FAMILY GAMES_MUSIC GAMES_PUZZLE GAMES_RACING GAMES_ROLE_PLAYING GAMES_SIMULATION GAMES_SPORTS GAMES_STRATEGY GAMES_TRIVIA GAMES_WORD

GRAPHICS_AND_DESIGN

提供创建、编辑或共享视觉内容的工具或技巧的应用。

HEALTH_AND_FITNESS

与健康生活相关的应用,包括压力管理、健身和休闲活动。

LIFESTYLE

与一般兴趣主题或服务相关的应用。

MAGAZINES_AND_NEWSPAPERS

包含传统以印刷形式提供、并提供额外交互性的新闻内容的应用。

MEDICAL

专注于患者或医疗专业人员的医学教育、信息或健康参考的应用。

MUSIC

用于发现、聆听、录制、演奏或创作音乐的应用。

NAVIGATION

提供信息以帮助用户到达实体位置的应用。

NEWS

提供有关时事和/或政治、娱乐、商业、科学、技术及其他领域动态信息的应用。

PHOTO_AND_VIDEO

协助拍摄、编辑、管理、存储或共享照片和视频的应用。

PRODUCTIVITY

使特定流程或任务更有条理或更高效的应用。

REFERENCE

帮助用户访问或检索一般信息的应用。

SHOPPING

提供购买商品或服务方式的应用。

SOCIAL_NETWORKING

通过文本、语音、照片或视频连接人们的应用。

SPORTS

与职业、业余、大学或休闲体育活动相关的应用。

STICKERS

为消息应用提供扩展视觉功能的应用。

此类别最多可包含 2 个子类别。

STICKERS_ANIMALS STICKERS_ART STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_CHARACTERS STICKERS_EATING_AND_DRINKING STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_FASHION STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_MOVIES_AND_TV STICKERS_MUSIC STICKERS_PEOPLE STICKERS_PLACES_AND_OBJECTS STICKERS_SPORTS_AND_ACTIVITIES

TRAVEL

帮助用户处理旅行各个方面的应用,例如规划、购买或追踪。

UTILITIES

使用户能够解决问题或完成特定任务的应用。

WEATHER

包含特定天气相关信息的应用。

Apple info

App Store 是一项面向全球用户、支持多种语言的服务。 你可以用多种语言本地化你的 App Store 展示信息。

英文(美国)的最小本地化信息
store.config.json
{ "configVersion": 0, "apple": { "info": { "en-US": { "title": "Awesome app", "privacyPolicyUrl": "https://example.com/en/privacy" } } } }
用英文(美国)编写的完整本地化信息
store.config.json
{ "configVersion": 0, "apple": { "info": { "en-US": { "title": "App title", "subtitle": "Subtitle for your app", "description": "A longer description of what your app does", "keywords": ["keyword", "other-keyword"], "releaseNotes": "Bug fixes and improved stability", "promoText": "Short tagline for your app", "marketingUrl": "https://example.com/en", "supportUrl": "https://example.com/en/help", "privacyPolicyUrl": "https://example.com/en/privacy", "privacyChoicesUrl": "https://example.com/en/privacy/choices" } } } }
PropertyTypeDescription

title

string

length: 2..30

应用在商店中的名称。此名称应与已安装的应用名称相似。

该名称在上架到 App Store 之前将经过审核。

subtitle

string

length: 30

应用在商店中的副标题。例如,“一个适合朋友的有趣游戏”。

该副标题在上架到 App Store 之前将经过审核。

description

string

length: 10..4000

应用功能的主要描述

keywords

string[]

unique itemsmax length item: 100

帮助用户在 App Store 中找到该应用的关键词列表

releaseNotes

string

max length: 4000

自上一个公开版本以来的更改

promoText

string

max length: 170

应用的简短宣传语

marketingUrl

string

max length: 255

应用营销页面的 URL

supportUrl

string

max length: 255

应用支持页面的 URL

privacyPolicyText

string

Apple TV 的隐私政策

privacyPolicyUrl

string

max length: 255

指向隐私政策的 URL。

所有应用都必须提供隐私政策。

privacyChoicesUrl

string

max length: 255

用户可以在此 URL 修改和删除从应用收集的数据,或决定其数据的使用和共享方式。

Apple 信息语言

LanguageLanguage Code

Arabic

ar-SA

Catalan

ca

Chinese

zh-Hans(简体)

zh-Hant(繁体)

Croatian

hr

Czech

cs

Danish

da

Dutch

nl-NL

English

en-AU(澳大利亚)

en-CA(加拿大)

en-GB(英国)

en-US(美国)

Finnish

fi

French

fr-CA(加拿大)

fr-FR(法国)

German

de-DE

Greek

el

Hebrew

he

Hindi

hi

Hungarian

hu

Indonesian

id

Italian

it

Japanese

ja

Korean

ko

Malay

ms

Norwegian

no

Polish

pl

Portuguese

pt-BR(巴西)

pt-PT(葡萄牙)

Romanian

ro

Russian

ru

Slovak

sk

Spanish

es-MX(墨西哥)

es-ES(西班牙)

Swedish

sv

Thai

th

Turkish

tr

Ukrainian

uk

Vietnamese

vi

Apple 发布

有多种策略可以将应用交到你的用户手中。 你可以在商店审核通过后自动发布应用,或者逐步向用户发布更新。

2022 年 12 月 25 日之后自动发布(UTC)
store.config.json
{ "configVersion": 0, "apple": { "release": { "automaticRelease": "2022-12-25T00:00:00+00:00" } } }
PropertyTypeDescription

automaticRelease

boolean|Date

如果以及如何在 App Store 审核通过后自动发布应用。

  • false - 在商店审核通过后手动发布应用。(默认行为)
  • true - 在商店审核通过后自动发布。
  • Date - 在商店审核通过后,自动安排在此日期发布(使用 RFC 3339 格式)。

Apple 不保证你的应用会在所选的计划发布日期可用。

phasedRelease

boolean

用于自动更新的分阶段发布可让你在 7 天 期间内逐步向已开启自动更新的用户发布此更新。

请记住,此版本仍然可以作为来自 App Store 的手动更新供所有用户使用。

你可以将分阶段发布暂停最长 30 天,或随时向所有用户发布此更新。

了解更多

Apple 审核

在 App Store 上发布应用之前,需要先获得商店审核通过。 App Store 审核团队必须拥有测试你的应用所需的全部信息,否则你可能会面临应用被拒。

最少审核信息
store.config.json
{ "configVersion": 0, "apple": { "review": { "firstName": "John", "lastName": "Doe", "email": "john@example.com", "phone": "+1 123 456 7890" } } }
完整审核信息
store.config.json
{ "configVersion": 0, "apple": { "review": { "firstName": "John", "lastName": "Doe", "email": "john@example.com", "phone": "+1 123 456 7890", "demoUsername": "john", "demoPassword": "applereview", "demoRequired": false, "notes": "这是一个主要用于教育目的的示例应用。" } } }
PropertyTypeDescription

firstName

string

min length: 1

应用联系人在需要与 App Store 审核团队沟通时的名字。

lastName

string

min length: 1

应用联系人在需要与 App Store 审核团队沟通时的姓氏。

email

string

email

在需要与 App Store 审核团队沟通时的电子邮件联系地址。

phone

string

在需要与 App Store 审核团队沟通时的联系电话。

电话号码前请加上“+”以及国家代码。(例如,+44 844 209 0611)

demoUsername

string

用于登录你的应用以审核其功能的用户名。

demoPassword

string

用于登录你的应用以审核其功能的密码。

demoRequired

boolean

一个布尔值,表示审核你的应用功能是否需要登录信息。

如果用户使用社交媒体登录,请提供一个用于审核的账户信息。

凭据在审核期间必须有效且处于激活状态。

notes

string

length: 2..4000

有关你的应用的其他信息,可在审核过程中提供帮助。

请勿在备注中包含演示账户详情。请改用 demoUsername demoPassword 属性。