关于 asc-app-infos
asc-app-infos 是通过 `asc` 命令行管理应用持久元数据和本地化内容的技能,涵盖类别、名称、副标题及隐私信息,与版本发布专属元数据分开管理。
主要功能
- 01列出应用信息记录
- 02设置主类别和次类别
- 03浏览 App Store 类别
- 04创建、更新和删除本地化内容
- 05按语言管理隐私信息
适用场景
- 01更新应用类别
- 02维护本地化应用名称和副标题
- 03修改各语言的隐私政策信息
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-app-infos安装后在 Claude Code 中输入/asc-app-infos确认已加载。
详细介绍
asc 应用信息与本地化
通过 asc CLI 管理应用级元数据(名称、副标题、隐私政策 URL、类别)。
注意:这与版本级元数据(
asc version-localizations)不同,后者用于管理“最新动态”、描述和关键词。应用信息本地化包含持久化的应用名称和副标题。
列出应用信息
每个应用都有一条 AppInfo 记录(极少数情况下会有多条)。获取后续命令所需的 AppInfo ID。
asc app-infos list --app-id <APP_ID> [--pretty]
JSON 输出:
{
"data": [
{
"id": "info-abc123",
"appId": "6746148194",
"affordances": {
"getAgeRating": "asc age-rating get --app-info-id info-abc123",
"listAppInfos": "asc app-infos list --app-id 6746148194",
"listLocalizations": "asc app-info-localizations list --app-info-id info-abc123",
"updateCategories": "asc app-infos update --app-info-id info-abc123"
}
}
]
}
更新应用信息(类别)
设置主要类别和/或次要类别。所有标志均为可选(PATCH 语义)。
asc app-infos update --app-info-id <APP_INFO_ID> \
[--primary-category GAMES] \
[--primary-subcategory-one GAMES_ACTION] \
[--secondary-category UTILITIES]
列出应用类别
浏览所有 App Store 类别 ID(app-infos update 必需)。
asc app-categories list [--platform IOS|MAC_OS|TV_OS] [--output table]
示例 ID: GAMES、GAMES_ACTION、GAMES_PUZZLE、GAMES_ADVENTURE、BUSINESS、UTILITIES、EDUCATION、HEALTH_AND_FITNESS、ENTERTAINMENT、SOCIAL_NETWORKING、PRODUCTIVITY、FINANCE、MUSIC、TRAVEL、SPORTS
子类别遵循 PARENT_SUBTYPE 模式(例如,GAMES_ACTION 属于 GAMES)。API 不会返回 parentId 字段。
列出本地化内容
asc app-info-localizations list --app-info-id <APP_INFO_ID> [--output table]
表格输出:
ID Locale Name Subtitle
-------- -------- -------------- --------------------
loc-001 en-US My App Do things faster
loc-002 zh-Hans 我的应用 更快地完成任务
创建本地化内容
创建新的区域设置条目。--name 为必填项(最多 30 个字符)。
asc app-info-localizations create \
--app-info-id <APP_INFO_ID> \
--locale zh-Hans \
--name "我的应用"
常见区域设置:en-US、zh-Hans、zh-Hant、ja、ko、de、fr
更新本地化内容
所有字段均为可选项——只会更改提供的字段(PATCH 语义)。
asc app-info-localizations update \
--localization-id <LOCALIZATION_ID> \
[--name "New App Name"] \
[--subtitle "Do things faster"] \
[--privacy-policy-url "https://example.com/privacy"] \
[--privacy-choices-url "https://example.com/choices"] \
[--privacy-policy-text "Our privacy policy text"]
| 标志 | 说明 |
|---|---|
--name | 应用名称(最多 30 个字符) |
--subtitle | 副标题(最多 30 个字符) |
--privacy-policy-url | 主隐私政策 URL |
--privacy-choices-url | 隐私选项/退出 URL |
--privacy-policy-text | 内嵌隐私政策文本 |
删除本地化内容
永久移除区域设置条目。
asc app-info-localizations delete --localization-id <LOCALIZATION_ID>
CAEOAS 功能
每个响应都包含可直接运行的后续命令:
AppInfo:
{
"affordances": {
"getAgeRating": "asc age-rating get --app-info-id <ID>",
"listAppInfos": "asc app-infos list --app-id <APP_ID>",
"listLocalizations": "asc app-info-localizations list --app-info-id <ID>",
"updateCategories": "asc app-infos update --app-info-id <ID>"
}
}
AppInfoLocalization:
{
"affordances": {
"delete": "asc app-info-localizations delete --localization-id <ID>",
"listLocalizations": "asc app-info-localizations list --app-info-id <APP_INFO_ID>",
"updateLocalization": "asc app-info-localizations update --localization-id <ID>"
}
}
AppCategory:
{
"affordances": {
"listCategories": "asc app-categories list"
}
}
解析应用 ID
参阅 project-context.md——在询问用户或运行 asc apps list 之前,先检查 .asc/project.json。
典型工作流
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# If empty: ask user or run `asc apps list | jq -r '.data[0].id'`
# 1. Get the AppInfo ID
APP_INFO_ID=$(asc app-infos list --app-id "$APP_ID" | jq -r '.data[0].id')
# 2. See existing localizations
asc app-info-localizations list --app-info-id "$APP_INFO_ID" --output table
# 3a. Update an existing locale
LOC_ID=$(asc app-info-localizations list --app-info-id "$APP_INFO_ID" \
| jq -r '.data[] | select(.locale == "en-US") | .id')
asc app-info-localizations update \
--localization-id "$LOC_ID" \
--name "My App" \
--subtitle "Do things faster" \
--privacy-policy-url "https://example.com/privacy"
# 3b. Add a new locale
asc app-info-localizations create \
--app-info-id "$APP_INFO_ID" \
--locale zh-Hans \
--name "我的应用"
# 3c. Remove an unwanted locale
asc app-info-localizations delete --localization-id <LOCALIZATION_ID>
# 4. Set app category
asc app-categories list --platform IOS --output table
asc app-infos update \
--app-info-id "$APP_INFO_ID" \
--primary-category GAMES \
--primary-subcategory-one GAMES_ACTION
# 5. Check age rating (navigate via affordance)
asc age-rating get --app-info-id "$APP_INFO_ID"
两种本地化类型
| 类型 | 命令 | 字段 |
|---|---|---|
AppInfoLocalization | asc app-info-localizations * | name、subtitle、privacyPolicyUrl、privacyChoicesUrl、privacyPolicyText |
AppStoreVersionLocalization | asc version-localizations * | whatsNew、description、keywords、screenshots |
应用信息本地化内容会在不同应用版本间保留。版本本地化内容则针对单个版本发布。