#๋ฆด๋ฆฌ์ค ๊ด๋ฆฌ ๋๊ตฌ
App Store Connect์ Google Play Console์์ ์ฑ ๋ฒ์ ๊ณผ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ์ ๋๋ค.
#release-check-versions
App Store/Google Play์์ ์ต์ ๋ฒ์ ์ ํ์ธํฉ๋๋ค.
#ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ํ์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|---|
app | string | ์กฐ๊ฑด๋ถ | - | ๋ฑ๋ก๋ ์ฑ slug |
bundleId | string | ์กฐ๊ฑด๋ถ | - | App Store ๋ฒ๋ค ID |
packageName | string | ์กฐ๊ฑด๋ถ | - | Google Play ํจํค์ง๋ช |
store | "appStore" | "googlePlay" | "both" | ์๋์ค | "both" | ๋์ ์คํ ์ด |
#์ฌ์ฉ ์์
// ๋ชจ๋ ์คํ ์ด ํ์ธ
{ "app": "myapp" }
// App Store๋ง ํ์ธ
{ "app": "myapp", "store": "appStore" }
// ์ง์ ์๋ณ์ ์ฌ์ฉ
{ "bundleId": "com.example.app" }
#์๋ต
๐ **App Store**
Latest: 1.2.0 (READY_FOR_DISTRIBUTION)
Editable: 1.3.0 (PREPARE_FOR_SUBMISSION)
๐ค **Google Play**
Production: 1.2.0 (versionCode: 120)
#release-create
App Store/Google Play์ ์ ๋ฒ์ ์ ์์ฑํฉ๋๋ค.
#ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ํ์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|---|
app | string | ์กฐ๊ฑด๋ถ | - | ๋ฑ๋ก๋ ์ฑ slug |
bundleId | string | ์กฐ๊ฑด๋ถ | - | App Store ๋ฒ๋ค ID |
packageName | string | ์กฐ๊ฑด๋ถ | - | Google Play ํจํค์ง๋ช |
version | string | ์๋์ค | - | ๋ฒ์ ๋ฌธ์์ด (์: "1.2.0"). ๋ฏธ์ ๊ณต์ ํ์ฌ ๋ฒ์ ํ์ |
store | "appStore" | "googlePlay" | "both" | ์๋์ค | "both" | ๋์ ์คํ ์ด |
versionCodes | number[] | ์กฐ๊ฑด๋ถ | - | Google Play์ ํ์ |
#์ฌ์ฉ ์์
// ํ์ฌ ๋ฒ์ ๋จผ์ ํ์ธ (version ๋ฏธ์ ๊ณต)
{ "app": "myapp" }
// App Store ๋ฒ์ ์์ฑ
{ "app": "myapp", "store": "appStore", "version": "1.3.0" }
// Google Play ๋ฒ์ ์์ฑ (version codes ํฌํจ)
{
"app": "myapp",
"store": "googlePlay",
"version": "1.3.0",
"versionCodes": [130, 131]
}
// ๋ชจ๋ ์คํ ์ด์ ์์ฑ
{
"app": "myapp",
"version": "1.3.0",
"versionCodes": [130]
}
#์๋ต
๐ฆ Version Creation Results:
โ
App Store version 1.3.0 created (PREPARE_FOR_SUBMISSION)
โ
Google Play production draft created with versionCodes: 130, 131
์๋ฌ:
๐ฆ Version Creation Results:
โ App Store version creation failed: Version 1.3.0 already exists
โญ๏ธ Skipping Google Play (no version codes provided)
#release-pull-notes
App Store/Google Play์์ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ๊ฐ์ ธ์ ๋ก์ปฌ ์บ์์ ์ ์ฅํฉ๋๋ค.
#ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ํ์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|---|
app | string | ์กฐ๊ฑด๋ถ | - | ๋ฑ๋ก๋ ์ฑ slug |
bundleId | string | ์กฐ๊ฑด๋ถ | - | App Store ๋ฒ๋ค ID |
packageName | string | ์กฐ๊ฑด๋ถ | - | Google Play ํจํค์ง๋ช |
store | "appStore" | "googlePlay" | "both" | ์๋์ค | "both" | ๋์ ์คํ ์ด |
dryRun | boolean | ์๋์ค | false | true์ด๋ฉด ์ ์ฅ ์์ด ๊ฒฐ๊ณผ๋ง ์ถ๋ ฅ |
#์ฌ์ฉ ์์
// ๋ชจ๋ ์คํ ์ด์์ ๊ฐ์ ธ์ค๊ธฐ
{ "app": "myapp" }
// Google Play๋ง ๊ฐ์ ธ์ค๊ธฐ
{ "app": "myapp", "store": "googlePlay" }
// ๋ฏธ๋ฆฌ๋ณด๊ธฐ
{ "app": "myapp", "dryRun": true }
#๋ฐ์ดํฐ ์ ์ฅ ์์น
{dataDir}/.aso/pull/{slug}/
โโโ app-store/
โ โโโ release-notes.json
โโโ google-play/
โโโ release-notes.json
#์๋ต
โ
Release notes pulled
Google Play: 5 versions
App Store: 3 versions
#release-update-notes
App Store/Google Play ๋ฒ์ ์ ๋ฆด๋ฆฌ์ค ๋ ธํธ(What's New)๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
#ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ํ์ | ํ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|---|---|
app | string | ์กฐ๊ฑด๋ถ | - | ๋ฑ๋ก๋ ์ฑ slug |
bundleId | string | ์กฐ๊ฑด๋ถ | - | App Store ๋ฒ๋ค ID |
packageName | string | ์กฐ๊ฑด๋ถ | - | Google Play ํจํค์ง๋ช |
store | "appStore" | "googlePlay" | "both" | ์๋์ค | "both" | ๋์ ์คํ ์ด |
versionId | string | ์๋์ค | ์๋ ๊ฐ์ง | App Store ๋ฒ์ ID (ํธ์ง ๊ฐ๋ฅํ ๋ฒ์ ์๋ ๊ฐ์ง) |
whatsNew | Record<string, string> | ์กฐ๊ฑด๋ถ | - | ์ธ์ด๋ณ ๋ฆด๋ฆฌ์ค ๋ ธํธ |
text | string | ์กฐ๊ฑด๋ถ | - | ๋ชจ๋ ์ง์ ์ธ์ด๋ก ๋ฒ์ญํ ์๋ณธ ํ ์คํธ |
sourceLocale | string | ์๋์ค | "en-US" | ๋ฒ์ญ ์๋ณธ ์ธ์ด |
์ฐธ๊ณ :
whatsNew(๋ชจ๋ ๋ฒ์ญ) ๋๋text(๋ฒ์ญํ ์๋ณธ)๋ฅผ ์ ๊ณตํ์ธ์.
#์ฌ์ฉ ์์
์ต์ 1: ๋ชจ๋ ๋ฒ์ญ ์ ๊ณต
{
"app": "myapp",
"whatsNew": {
"en-US": "Bug fixes and improvements",
"ko": "๋ฒ๊ทธ ์์ ๋ฐ ๊ฐ์ ",
"ja": "ใใฐไฟฎๆญฃใจๆนๅ"
}
}
์ต์ 2: ๋ฒ์ญํ ์๋ณธ ํ ์คํธ ์ ๊ณต
{
"app": "myapp",
"text": "Bug fixes and improvements",
"sourceLocale": "en-US"
}
text ์ฌ์ฉ ์ ๋๊ตฌ๊ฐ ๋ฒ์ญ ์์ฒญ์ ๋ฐํํฉ๋๋ค:
๐ Translation Required
**Source Text** (en-US):
Bug fixes and improvements
**App Store Supported Locales** (3):
en-US, ko, ja
**Google Play Supported Locales** (3):
en-US, ko, ja
**Instructions**:
Please translate the text to all target locales and call this function
again with the `whatsNew` parameter containing all translations.
#์๋ต
๐ Release Notes Update Results:
**๐ App Store:**
โ
Updated 3 locales
โข en-US: Bug fixes and improvements
โข ko: ๋ฒ๊ทธ ์์ ๋ฐ ๊ฐ์
โข ja: ใใฐไฟฎๆญฃใจๆนๅ
**๐ค Google Play:**
โ
Updated 3 locales
โข en-US: Bug fixes and improvements
โข ko: ๋ฒ๊ทธ ์์ ๋ฐ ๊ฐ์
โข ja: ใใฐไฟฎๆญฃใจๆนๅ
#๋ฒ์ญ ํ์ดํ๋ผ์ธ
์ผ๋ถ ๋ฒ์ญ๋ง ์ ๊ณต๋ ๊ฒฝ์ฐ ๋๊ตฌ๊ฐ ๋ฒ์ญ ํ์ดํ๋ผ์ธ์ ์๋ดํฉ๋๋ค:
- 1๋จ๊ณ: ์ ๊ณต๋ ํ
์คํธ๊ฐ
sourceLocale์ด ์๋๋ฉด ๋จผ์ ์๋ณธ ์ธ์ด๋ก ๋ฒ์ญ ์์ฒญ - 2๋จ๊ณ: ์๋ณธ ์ธ์ด์์ ๋๋ฝ๋ ๋ชจ๋ ์ง์ ์ธ์ด๋ก ๋ฒ์ญ ์์ฒญ
- ์ต์ข : ๋ชจ๋ ๋ฒ์ญ์ด ์ ๊ณต๋๋ฉด ์คํ ์ด ์ ๋ฐ์ดํธ
#๋ฒ์ ์ํ
#App Store
| ์ํ | ์ค๋ช |
|---|---|
PREPARE_FOR_SUBMISSION | ํธ์ง ๊ฐ๋ฅ, ์์ง ์ ์ถ๋์ง ์์ |
WAITING_FOR_REVIEW | ์ ์ถ๋จ, ์ฌ์ฌ ๋๊ธฐ ์ค |
IN_REVIEW | ์ฌ์ฌ ์ค |
PENDING_DEVELOPER_RELEASE | ์น์ธ๋จ, ์๋ ์ถ์ ๋๊ธฐ ์ค |
READY_FOR_DISTRIBUTION | App Store์ ๋ฐฐํฌ๋จ |
REJECTED | ์ฌ์ฌ ๊ฑฐ๋ถ๋จ |
#Google Play
| ํธ๋ | ์ค๋ช |
|---|---|
internal | ๋ด๋ถ ํ ์คํธ ํธ๋ |
alpha | ๋น๊ณต๊ฐ ํ ์คํธ ํธ๋ |
beta | ๊ณต๊ฐ ํ ์คํธ ํธ๋ |
production | Play ์คํ ์ด์ ๋ฐฐํฌ๋จ |
#์ํฌํ๋ก์ฐ ์์
#์ ์ฒด ๋ฆด๋ฆฌ์ค ์ํฌํ๋ก์ฐ
-
ํ์ฌ ๋ฒ์ ํ์ธ:
{ "app": "myapp" } -
์ ๋ฒ์ ์์ฑ:
{ "app": "myapp", "version": "1.3.0", "versionCodes": [130] } -
๋ฆด๋ฆฌ์ค ๋ ธํธ ์ ๋ฐ์ดํธ:
{ "app": "myapp", "whatsNew": { "en-US": "โข New feature A\nโข Bug fixes", "ko": "โข ์๋ก์ด ๊ธฐ๋ฅ A\nโข ๋ฒ๊ทธ ์์ " } } -
ํ์ธ:
{ "app": "myapp" }