shipup 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/LICENSE +14 -0
- package/README.md +112 -0
- package/README.zh-CN.md +105 -0
- package/SECURITY.md +32 -0
- package/creds.example.yaml +62 -0
- package/dist/adapters/android/honor/api.js +360 -0
- package/dist/adapters/android/honor/api.js.map +1 -0
- package/dist/adapters/android/honor/index.js +122 -0
- package/dist/adapters/android/honor/index.js.map +1 -0
- package/dist/adapters/android/huawei/api.js +389 -0
- package/dist/adapters/android/huawei/api.js.map +1 -0
- package/dist/adapters/android/huawei/index.js +128 -0
- package/dist/adapters/android/huawei/index.js.map +1 -0
- package/dist/adapters/android/meizu/api.js +367 -0
- package/dist/adapters/android/meizu/api.js.map +1 -0
- package/dist/adapters/android/meizu/index.js +129 -0
- package/dist/adapters/android/meizu/index.js.map +1 -0
- package/dist/adapters/android/oppo/api.js +397 -0
- package/dist/adapters/android/oppo/api.js.map +1 -0
- package/dist/adapters/android/oppo/index.js +135 -0
- package/dist/adapters/android/oppo/index.js.map +1 -0
- package/dist/adapters/android/qq/api.js +184 -0
- package/dist/adapters/android/qq/api.js.map +1 -0
- package/dist/adapters/android/qq/index.js +80 -0
- package/dist/adapters/android/qq/index.js.map +1 -0
- package/dist/adapters/android/samsung/api.js +355 -0
- package/dist/adapters/android/samsung/api.js.map +1 -0
- package/dist/adapters/android/samsung/index.js +111 -0
- package/dist/adapters/android/samsung/index.js.map +1 -0
- package/dist/adapters/android/specs.js +106 -0
- package/dist/adapters/android/specs.js.map +1 -0
- package/dist/adapters/android/stub.js +27 -0
- package/dist/adapters/android/stub.js.map +1 -0
- package/dist/adapters/android/vivo/api.js +236 -0
- package/dist/adapters/android/vivo/api.js.map +1 -0
- package/dist/adapters/android/vivo/index.js +121 -0
- package/dist/adapters/android/vivo/index.js.map +1 -0
- package/dist/adapters/android/xiaomi/api.js +163 -0
- package/dist/adapters/android/xiaomi/api.js.map +1 -0
- package/dist/adapters/android/xiaomi/index.js +108 -0
- package/dist/adapters/android/xiaomi/index.js.map +1 -0
- package/dist/adapters/ios/appstore/asc.js +280 -0
- package/dist/adapters/ios/appstore/asc.js.map +1 -0
- package/dist/adapters/ios/appstore/index.js +323 -0
- package/dist/adapters/ios/appstore/index.js.map +1 -0
- package/dist/adapters/registry.js +34 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/util.js +26 -0
- package/dist/adapters/util.js.map +1 -0
- package/dist/cli/index.js +479 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.js +65 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/core/exit.js +20 -0
- package/dist/core/exit.js.map +1 -0
- package/dist/core/orchestrator.js +24 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/types.js +20 -0
- package/dist/core/types.js.map +1 -0
- package/dist/creds/load.js +68 -0
- package/dist/creds/load.js.map +1 -0
- package/dist/creds/schema.js +30 -0
- package/dist/creds/schema.js.map +1 -0
- package/dist/infra/crypto.js +12 -0
- package/dist/infra/crypto.js.map +1 -0
- package/dist/infra/http.js +87 -0
- package/dist/infra/http.js.map +1 -0
- package/dist/pkginfo/apk-icon.js +89 -0
- package/dist/pkginfo/apk-icon.js.map +1 -0
- package/dist/pkginfo/icon.js +83 -0
- package/dist/pkginfo/icon.js.map +1 -0
- package/dist/pkginfo/index.js +33 -0
- package/dist/pkginfo/index.js.map +1 -0
- package/docs/android-markets.md +190 -0
- package/docs/credentials.md +72 -0
- package/docs/providers.md +60 -0
- package/lib/common.mjs +265 -0
- package/lib/harmony.mjs +190 -0
- package/lib/huawei.mjs +153 -0
- package/lib/ios.mjs +477 -0
- package/package.json +70 -0
- package/shipup.mjs +160 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## 0.2.0 - 2026-07-13
|
|
6
|
+
|
|
7
|
+
- Add Android multi-market upload and status commands for Huawei, Honor, OPPO,
|
|
8
|
+
vivo, Xiaomi, Samsung, Tencent MyApp, and Meizu.
|
|
9
|
+
- Add APK metadata and ABI inspection, launcher-icon extraction, image resizing,
|
|
10
|
+
screenshot processing, and optional store-listing metadata updates.
|
|
11
|
+
- Expand App Store Connect commands with bundle-ID lookup, standalone build
|
|
12
|
+
submission, localization metadata, and idempotent phased release.
|
|
13
|
+
- Support combined `android`, `harmony`, `huawei`, and `ios` credential sections
|
|
14
|
+
in the default credentials file.
|
|
15
|
+
- Add credential permission warnings and redaction for multi-market provider
|
|
16
|
+
errors and signed responses.
|
|
17
|
+
- Preserve the original HarmonyOS and Huawei compatibility commands.
|
|
18
|
+
|
|
19
|
+
## 0.1.0 - 2026-07-13
|
|
20
|
+
|
|
21
|
+
- Add HarmonyOS AppGallery upload, submit, and status commands.
|
|
22
|
+
- Add Huawei Android APK upload and status commands.
|
|
23
|
+
- Add iOS upload, submit, status, and phased-release commands.
|
|
24
|
+
- Add normalized JSON output, stable exit codes, credential indirection, global
|
|
25
|
+
timeout handling, and dry-run validation.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Zero-Clause BSD
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2026 shipup contributors
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
+
PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# shipup
|
|
2
|
+
|
|
3
|
+
[](https://github.com/HenryHaoson/shipup/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
`shipup` is a Node.js CLI for uploading, submitting, inspecting, and releasing
|
|
6
|
+
mobile applications across major app stores:
|
|
7
|
+
|
|
8
|
+
- HarmonyOS AppGallery Connect (`.app`);
|
|
9
|
+
- Android: Huawei, Honor, OPPO, vivo, Xiaomi, Samsung, Tencent MyApp, and Meizu (`.apk`);
|
|
10
|
+
- Apple App Store Connect (`.ipa`).
|
|
11
|
+
|
|
12
|
+
It is designed for local automation and CI: JSON goes to stdout, diagnostics go
|
|
13
|
+
to stderr, provider states and exit codes are normalized, and `--dry-run`
|
|
14
|
+
performs local validation without network requests.
|
|
15
|
+
|
|
16
|
+
> `shipup` is an independent community project and is not affiliated with or
|
|
17
|
+
> endorsed by any supported store operator.
|
|
18
|
+
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
- Node.js 18.17 or newer.
|
|
22
|
+
- iOS upload requires macOS, Xcode, and `xcrun altool`.
|
|
23
|
+
- Android icon extraction requires Android SDK `aapt`/`aapt2`; alternatively pass `--icon`.
|
|
24
|
+
- Provider credentials authorized for the target application.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
Until the first npm registry release, install from a checkout or a pinned GitHub tag:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install
|
|
32
|
+
npm link
|
|
33
|
+
shipup --help
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Quick start
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
mkdir -p ~/.config/shipup
|
|
40
|
+
cp creds.example.yaml ~/.config/shipup/credentials.yaml
|
|
41
|
+
chmod 600 ~/.config/shipup/credentials.yaml
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Credentials are resolved from `--creds`, then `SHIPUP_CREDS`, then
|
|
45
|
+
`~/.config/shipup/credentials.yaml`.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# HarmonyOS
|
|
49
|
+
shipup harmony status
|
|
50
|
+
shipup harmony upload --package ./application.app --dry-run
|
|
51
|
+
|
|
52
|
+
# Android multi-market upload
|
|
53
|
+
shipup android upload \
|
|
54
|
+
--upload huawei=./app-huawei.apk honor=./app-honor.apk \
|
|
55
|
+
--release-note @./release-note.txt \
|
|
56
|
+
--submit-review --output json
|
|
57
|
+
shipup android status --channel huawei
|
|
58
|
+
|
|
59
|
+
# App Store Connect
|
|
60
|
+
shipup ios upload --package ./application.ipa --dry-run
|
|
61
|
+
shipup ios submit --app-version 2.0.0 --build-version 200 --bundle-id com.example.app
|
|
62
|
+
shipup ios status --app-version 2.0.0 --bundle-id com.example.app
|
|
63
|
+
shipup ios release --app-version 2.0.0 --bundle-id com.example.app --phased
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Commands
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
shipup harmony upload|submit|status
|
|
70
|
+
shipup huawei upload|status # compatibility command
|
|
71
|
+
shipup android upload|status # eight Android markets
|
|
72
|
+
shipup ios upload|submit|status|release
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Android upload supports release notes, icons, screenshots, application names,
|
|
76
|
+
summaries, and descriptions where the selected market API supports them. See
|
|
77
|
+
[Provider behavior](docs/providers.md) and [Android market capabilities](docs/android-markets.md).
|
|
78
|
+
|
|
79
|
+
## Output and exit codes
|
|
80
|
+
|
|
81
|
+
`--output json` returns a stable object with `tool`, `platform`, `command`,
|
|
82
|
+
`ok`, `summary`, and per-channel `results`. Normalized states include
|
|
83
|
+
`uploaded`, `submitted`, `pending_review`, `approved`, `published`, `rejected`,
|
|
84
|
+
`offline`, `skipped`, and `failed`.
|
|
85
|
+
|
|
86
|
+
| Code | Meaning |
|
|
87
|
+
|---:|---|
|
|
88
|
+
| `0` | success |
|
|
89
|
+
| `1` | partial multi-channel failure |
|
|
90
|
+
| `2` | provider or processing failure |
|
|
91
|
+
| `3` | invalid CLI usage |
|
|
92
|
+
| `4` | missing or invalid credentials |
|
|
93
|
+
| `5` | missing or invalid package input |
|
|
94
|
+
| `124` | timeout |
|
|
95
|
+
|
|
96
|
+
Read [Credentials](docs/credentials.md) and [Security](SECURITY.md) before using
|
|
97
|
+
production accounts.
|
|
98
|
+
|
|
99
|
+
## Development
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm run check
|
|
103
|
+
npm run security
|
|
104
|
+
npm test
|
|
105
|
+
npm run test:coverage
|
|
106
|
+
npm run pack:check
|
|
107
|
+
npm audit
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
[Zero-Clause BSD](LICENSE).
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# shipup
|
|
2
|
+
|
|
3
|
+
`shipup` 是一个跨平台应用商店发布 CLI,支持:
|
|
4
|
+
|
|
5
|
+
- HarmonyOS `.app`:AppGallery Connect;
|
|
6
|
+
- Android APK:华为、荣耀、OPPO、vivo、小米、三星、应用宝、魅族;
|
|
7
|
+
- iOS `.ipa`:App Store Connect 上传、提审、状态查询和灰度发布。
|
|
8
|
+
|
|
9
|
+
它适合本地自动化和 CI:JSON 只写 stdout,过程信息写 stderr,状态和退出码统一,
|
|
10
|
+
`--dry-run` 只做本地校验,不发网络请求。
|
|
11
|
+
|
|
12
|
+
> `shipup` 是独立社区项目,与各应用市场运营方不存在隶属或官方背书关系。
|
|
13
|
+
|
|
14
|
+
## 环境
|
|
15
|
+
|
|
16
|
+
- Node.js 18.17 或更新版本;
|
|
17
|
+
- iOS 上传需要 macOS、Xcode 和 `xcrun altool`;
|
|
18
|
+
- Android 自动提取图标需要 Android SDK 的 `aapt`/`aapt2`,也可显式传 `--icon`;
|
|
19
|
+
- 对目标应用具备相应权限的平台凭证。
|
|
20
|
+
|
|
21
|
+
## 安装
|
|
22
|
+
|
|
23
|
+
首次 npm registry 发布前,可从仓库或固定 Git tag 安装:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install
|
|
27
|
+
npm link
|
|
28
|
+
shipup --help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 凭证
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
mkdir -p ~/.config/shipup
|
|
35
|
+
cp creds.example.yaml ~/.config/shipup/credentials.yaml
|
|
36
|
+
chmod 600 ~/.config/shipup/credentials.yaml
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
查找顺序为 `--creds`、`SHIPUP_CREDS`、`~/.config/shipup/credentials.yaml`。
|
|
40
|
+
值支持字面量、`${ENVIRONMENT_VARIABLE}` 和 `@相对文件`。完整结构见
|
|
41
|
+
[凭证说明](docs/credentials.md)。
|
|
42
|
+
|
|
43
|
+
## 使用
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# HarmonyOS
|
|
47
|
+
shipup harmony status
|
|
48
|
+
shipup harmony upload --package ./application.app --dry-run
|
|
49
|
+
|
|
50
|
+
# Android 多渠道
|
|
51
|
+
shipup android upload \
|
|
52
|
+
--upload huawei=./app-huawei.apk honor=./app-honor.apk \
|
|
53
|
+
--release-note @./release-note.txt \
|
|
54
|
+
--submit-review --output json
|
|
55
|
+
shipup android status --channel huawei
|
|
56
|
+
|
|
57
|
+
# iOS
|
|
58
|
+
shipup ios upload --package ./application.ipa --dry-run
|
|
59
|
+
shipup ios submit --app-version 2.0.0 --build-version 200 --bundle-id com.example.app
|
|
60
|
+
shipup ios status --app-version 2.0.0 --bundle-id com.example.app
|
|
61
|
+
shipup ios release --app-version 2.0.0 --bundle-id com.example.app --phased
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
命令总览:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
shipup harmony upload|submit|status
|
|
68
|
+
shipup huawei upload|status # 原华为兼容命令
|
|
69
|
+
shipup android upload|status # Android 八渠道
|
|
70
|
+
shipup ios upload|submit|status|release
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Android 上传支持按渠道更新发布说明、图标、截图、应用名、一句话简介和长描述。
|
|
74
|
+
各市场具体支持情况见 [平台行为](docs/providers.md) 和
|
|
75
|
+
[Android 市场能力表](docs/android-markets.md)。
|
|
76
|
+
|
|
77
|
+
iOS 新参数统一为 `--app-version` 和 `--build-version`;旧的 `--version`、`--build`
|
|
78
|
+
仍可使用。`--bundle-id` 可以自动反查 App Store Connect 数字 App ID。
|
|
79
|
+
|
|
80
|
+
## 退出码
|
|
81
|
+
|
|
82
|
+
| 退出码 | 含义 |
|
|
83
|
+
|---:|---|
|
|
84
|
+
| `0` | 成功 |
|
|
85
|
+
| `1` | 多渠道部分失败 |
|
|
86
|
+
| `2` | 全部失败或平台处理失败 |
|
|
87
|
+
| `3` | 参数错误 |
|
|
88
|
+
| `4` | 凭证缺失或无效 |
|
|
89
|
+
| `5` | 软件包缺失或无效 |
|
|
90
|
+
| `124` | 超时 |
|
|
91
|
+
|
|
92
|
+
生产使用前请阅读 [SECURITY.md](SECURITY.md)。
|
|
93
|
+
|
|
94
|
+
## 开发
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm run check
|
|
98
|
+
npm run security
|
|
99
|
+
npm test
|
|
100
|
+
npm run test:coverage
|
|
101
|
+
npm run pack:check
|
|
102
|
+
npm audit
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
许可证:[Zero-Clause BSD](LICENSE)。
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Security policy
|
|
2
|
+
|
|
3
|
+
## Credentials
|
|
4
|
+
|
|
5
|
+
Never commit provider credentials, private keys, release packages, or
|
|
6
|
+
application-specific release metadata. Store local credentials under
|
|
7
|
+
`~/.config/shipup` with mode `0600`, or inject them through a CI secret store.
|
|
8
|
+
|
|
9
|
+
Credential values support literal strings, `${ENVIRONMENT_VARIABLE}`, and
|
|
10
|
+
`@path/to/file`. Environment variables and external files are preferred for
|
|
11
|
+
private keys and service-account JSON.
|
|
12
|
+
|
|
13
|
+
`--dry-run` does not send network requests, but it still resolves and validates
|
|
14
|
+
the selected credential file. Run it only in an environment allowed to access
|
|
15
|
+
those credentials.
|
|
16
|
+
|
|
17
|
+
## Logs
|
|
18
|
+
|
|
19
|
+
Do not upload raw debug logs without reviewing them. `shipup` redacts common
|
|
20
|
+
authorization tokens, private-key blocks, secret-like JSON fields, URL query
|
|
21
|
+
parameters, and long opaque values across both core and multi-market adapters,
|
|
22
|
+
but provider responses can change without notice.
|
|
23
|
+
|
|
24
|
+
## Reporting a vulnerability
|
|
25
|
+
|
|
26
|
+
Do not open a public issue containing credentials or private provider output.
|
|
27
|
+
Use GitHub's private vulnerability reporting form in the repository Security
|
|
28
|
+
tab. Do not include secrets in a public issue.
|
|
29
|
+
|
|
30
|
+
## Supported versions
|
|
31
|
+
|
|
32
|
+
Security fixes are provided for the latest released minor version only.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Copy to ~/.config/shipup/credentials.yaml and chmod 600 it.
|
|
2
|
+
# Values support literals, ${ENVIRONMENT_VARIABLE}, and @relative/file.
|
|
3
|
+
|
|
4
|
+
android:
|
|
5
|
+
package_name: com.example.app
|
|
6
|
+
channels:
|
|
7
|
+
huawei:
|
|
8
|
+
app_id: "100000001"
|
|
9
|
+
client_id: ${HUAWEI_CLIENT_ID}
|
|
10
|
+
client_secret: ${HUAWEI_CLIENT_SECRET}
|
|
11
|
+
honor:
|
|
12
|
+
app_id: "100000002"
|
|
13
|
+
client_id: ${HONOR_CLIENT_ID}
|
|
14
|
+
client_secret: ${HONOR_CLIENT_SECRET}
|
|
15
|
+
oppo:
|
|
16
|
+
app_id: "100003"
|
|
17
|
+
client_id: ${OPPO_CLIENT_ID}
|
|
18
|
+
client_secret: ${OPPO_CLIENT_SECRET}
|
|
19
|
+
vivo:
|
|
20
|
+
app_id: "10004"
|
|
21
|
+
access_key: ${VIVO_ACCESS_KEY}
|
|
22
|
+
access_secret: ${VIVO_ACCESS_SECRET}
|
|
23
|
+
xiaomi:
|
|
24
|
+
user_name: ${XIAOMI_USER_NAME}
|
|
25
|
+
password: ${XIAOMI_PASSWORD}
|
|
26
|
+
rsa_modulus: ${XIAOMI_RSA_MODULUS}
|
|
27
|
+
samsung:
|
|
28
|
+
app_id: "000001000000"
|
|
29
|
+
service_account: ${SAMSUNG_SERVICE_ACCOUNT}
|
|
30
|
+
private_key: "@./samsung-private-key.pem"
|
|
31
|
+
qq:
|
|
32
|
+
app_id: "1100000000"
|
|
33
|
+
user_id: "60000"
|
|
34
|
+
access_secret: ${QQ_ACCESS_SECRET}
|
|
35
|
+
meizu:
|
|
36
|
+
access_key: ${MEIZU_ACCESS_KEY}
|
|
37
|
+
access_secret: ${MEIZU_ACCESS_SECRET}
|
|
38
|
+
|
|
39
|
+
harmony:
|
|
40
|
+
app_id: "1234567890"
|
|
41
|
+
package_name: com.example.app
|
|
42
|
+
default_lang: zh-CN
|
|
43
|
+
service_account: "@./agc-service-account.json"
|
|
44
|
+
# API client credentials are also supported:
|
|
45
|
+
# client_id: ${AGC_CLIENT_ID}
|
|
46
|
+
# client_secret: ${AGC_CLIENT_SECRET}
|
|
47
|
+
|
|
48
|
+
# Compatibility command: shipup huawei upload|status.
|
|
49
|
+
# Android multi-market commands use android.channels.huawei above.
|
|
50
|
+
huawei:
|
|
51
|
+
app_id: "123456789"
|
|
52
|
+
package_name: com.example.app
|
|
53
|
+
default_lang: zh-CN
|
|
54
|
+
service_account: "@./agc-service-account.json"
|
|
55
|
+
|
|
56
|
+
ios:
|
|
57
|
+
app_id: "1234567890"
|
|
58
|
+
bundle_id: com.example.app
|
|
59
|
+
issuer_id: ${ASC_ISSUER_ID}
|
|
60
|
+
key_id: ${ASC_KEY_ID}
|
|
61
|
+
private_key: "@./AuthKey_XXXXXXXXXX.p8"
|
|
62
|
+
team_id: ${APPLE_TEAM_ID}
|