app_store_dev_api 0.3.0 → 0.3.1
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.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.claude/settings.local.json +2 -19
- data/Gemfile +5 -0
- data/Gemfile.lock +6 -0
- data/docs/bundle_id_capabilities.md +382 -0
- data/docs/bundle_ids.md +417 -0
- data/docs/creating_api_keys.md +137 -0
- data/docs/generating_tokens.md +189 -0
- data/docs/openapi.oas4.3.json +230597 -0
- data/docs/pindo_usage_reference.md +234 -0
- data/docs/revoking_api_keys.md +118 -0
- data/install_local.sh +73 -62
- data/lib/.DS_Store +0 -0
- data/lib/app_store_dev_api/client/builder.rb +1 -1
- data/lib/app_store_dev_api/client/options.rb +1 -1
- data/lib/app_store_dev_api/client.rb +1 -1
- data/lib/app_store_dev_api/version.rb +1 -1
- data/lib/config/{schema_v4.2.json → schema_v4.3.json} +0 -10
- data/push_all.sh +6 -0
- data/release_remote.sh +27 -8
- data/scripts/comprehensive_validation.rb +1 -1
- data/scripts/final_validation_report.rb +1 -1
- data/test_library.rb +160 -0
- metadata +13 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2175a1360a7aa40db6f60b7e15df9f93310e58e053e041974f4b3c5fbce3618a
|
|
4
|
+
data.tar.gz: 93413b3d0070c95f9b4be1e5be07c87c129ba8c9295fbca43276148073239682
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 946236edccb94d43267c05c88df1e6a97007f691085425014d360c9875773c4e89857fe2eca6ada46b530014eb970846c0342344942c8117ad48bc46c7d638e6
|
|
7
|
+
data.tar.gz: 79804de240038cba93ab8323709bc7116a9df6fc60b8a6cde94f103e3c96ab16d57a9ae5697d4d106df517d02ff05c7534f6538fdd50e44c2f6f19d56884d739
|
data/.DS_Store
CHANGED
|
Binary file
|
data/.claude/settings.local.json
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"allow": [
|
|
4
4
|
"mcp__playwright__browser_navigate",
|
|
5
5
|
"mcp__playwright__browser_evaluate",
|
|
6
|
-
"Bash(mkdir:*)",
|
|
7
6
|
"mcp__markdownify__webpage-to-markdown",
|
|
8
7
|
"mcp__playwright__browser_wait_for",
|
|
9
8
|
"mcp__playwright__browser_click",
|
|
@@ -12,24 +11,8 @@
|
|
|
12
11
|
"mcp__playwright__browser_close",
|
|
13
12
|
"mcp__playwright__browser_type",
|
|
14
13
|
"mcp__playwright__browser_press_key",
|
|
15
|
-
"Bash(
|
|
16
|
-
"
|
|
17
|
-
"Bash(bundle:*)",
|
|
18
|
-
"Bash(ruby:*)",
|
|
19
|
-
"Bash(gem install:*)",
|
|
20
|
-
"Bash(git add:*)",
|
|
21
|
-
"Bash(git commit:*)",
|
|
22
|
-
"WebSearch",
|
|
23
|
-
"Bash(cat:*)",
|
|
24
|
-
"Bash(python3:*)",
|
|
25
|
-
"Bash(chmod:*)",
|
|
26
|
-
"Bash(find:*)",
|
|
27
|
-
"Bash(bash:*)",
|
|
28
|
-
"Bash(gem list:*)",
|
|
29
|
-
"Bash(rake help:*)",
|
|
30
|
-
"Bash(rake validate:*)",
|
|
31
|
-
"Bash(rake install_local:*)",
|
|
32
|
-
"Bash(timeout 180 bundle install:*)"
|
|
14
|
+
"Bash(*)",
|
|
15
|
+
"WebFetch(*)"
|
|
33
16
|
],
|
|
34
17
|
"deny": [],
|
|
35
18
|
"ask": [],
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -37,6 +37,7 @@ GEM
|
|
|
37
37
|
async-pool (0.4.0)
|
|
38
38
|
async (>= 1.25)
|
|
39
39
|
base64 (0.1.2)
|
|
40
|
+
bigdecimal (3.2.3)
|
|
40
41
|
cgi (0.3.6)
|
|
41
42
|
coderay (1.1.3)
|
|
42
43
|
concurrent-ruby (1.2.2)
|
|
@@ -46,6 +47,7 @@ GEM
|
|
|
46
47
|
rexml
|
|
47
48
|
diff-lcs (1.5.0)
|
|
48
49
|
docile (1.4.0)
|
|
50
|
+
drb (2.2.3)
|
|
49
51
|
erb (4.0.2)
|
|
50
52
|
cgi (>= 0.3.3)
|
|
51
53
|
factory_bot (6.2.1)
|
|
@@ -96,6 +98,7 @@ GEM
|
|
|
96
98
|
method_source (1.0.0)
|
|
97
99
|
minitest (5.18.0)
|
|
98
100
|
multi_json (1.15.0)
|
|
101
|
+
mutex_m (0.3.0)
|
|
99
102
|
nenv (0.3.0)
|
|
100
103
|
notiffany (0.1.3)
|
|
101
104
|
nenv (~> 0.1)
|
|
@@ -188,11 +191,14 @@ PLATFORMS
|
|
|
188
191
|
|
|
189
192
|
DEPENDENCIES
|
|
190
193
|
app_store_dev_api!
|
|
194
|
+
bigdecimal (~> 3.2)
|
|
191
195
|
bundler (~> 2.4, >= 2.4.0)
|
|
196
|
+
drb (~> 2.2)
|
|
192
197
|
erb (~> 4.0.2)
|
|
193
198
|
factory_bot (~> 6.2.1)
|
|
194
199
|
github_changelog_generator (= 1.16.4)
|
|
195
200
|
guard-rspec (~> 4.7.3)
|
|
201
|
+
mutex_m (~> 0.3.0)
|
|
196
202
|
pry (~> 0.14.1)
|
|
197
203
|
rake (~> 13.0)
|
|
198
204
|
rspec (~> 3.12.0)
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
# Bundle ID Capabilities - App Store Connect API
|
|
2
|
+
|
|
3
|
+
> 官方文档: https://developer.apple.com/documentation/appstoreconnectapi/bundle-id-capabilities
|
|
4
|
+
|
|
5
|
+
## 概述
|
|
6
|
+
|
|
7
|
+
Bundle ID Capabilities 用于管理 Bundle ID 的功能配置(如推送通知、iCloud、Apple Pay 等)。通过这些 API,你可以为 Bundle ID 启用、更新或移除特定的平台能力。
|
|
8
|
+
|
|
9
|
+
## 数据模型
|
|
10
|
+
|
|
11
|
+
### BundleIdCapability 对象
|
|
12
|
+
|
|
13
|
+
| 字段 | 类型 | 说明 |
|
|
14
|
+
|------|------|------|
|
|
15
|
+
| `type` | string | 固定值 `"bundleIdCapabilities"` |
|
|
16
|
+
| `id` | string | 资源唯一标识 |
|
|
17
|
+
| `attributes.capabilityType` | CapabilityType | 能力类型 |
|
|
18
|
+
| `attributes.settings` | CapabilitySetting[] | 能力的配置选项列表 |
|
|
19
|
+
|
|
20
|
+
### CapabilityType 枚举
|
|
21
|
+
|
|
22
|
+
| 值 | 说明 |
|
|
23
|
+
|----|------|
|
|
24
|
+
| `ICLOUD` | iCloud 服务 |
|
|
25
|
+
| `IN_APP_PURCHASE` | 应用内购买 |
|
|
26
|
+
| `GAME_CENTER` | 游戏中心 |
|
|
27
|
+
| `PUSH_NOTIFICATIONS` | 推送通知 |
|
|
28
|
+
| `WALLET` | 钱包(Passbook) |
|
|
29
|
+
| `INTER_APP_AUDIO` | 应用间音频 |
|
|
30
|
+
| `MAPS` | 地图 |
|
|
31
|
+
| `ASSOCIATED_DOMAINS` | 关联域名 |
|
|
32
|
+
| `PERSONAL_VPN` | 个人 VPN |
|
|
33
|
+
| `APP_GROUPS` | 应用组 |
|
|
34
|
+
| `HEALTHKIT` | 健康套件 |
|
|
35
|
+
| `HOMEKIT` | 家居套件 |
|
|
36
|
+
| `WIRELESS_ACCESSORY_CONFIGURATION` | 无线配件配置 |
|
|
37
|
+
| `APPLE_PAY` | Apple Pay |
|
|
38
|
+
| `DATA_PROTECTION` | 数据保护 |
|
|
39
|
+
| `SIRIKIT` | Siri 套件 |
|
|
40
|
+
| `NETWORK_EXTENSIONS` | 网络扩展 |
|
|
41
|
+
| `MULTIPATH` | 多路径 |
|
|
42
|
+
| `HOT_SPOT` | 热点 |
|
|
43
|
+
| `NFC_TAG_READING` | NFC 标签读取 |
|
|
44
|
+
| `CLASSKIT` | ClassKit 教育框架 |
|
|
45
|
+
| `AUTOFILL_CREDENTIAL_PROVIDER` | 自动填充凭证提供者 |
|
|
46
|
+
| `ACCESS_WIFI_INFORMATION` | 访问 WiFi 信息 |
|
|
47
|
+
| `NETWORK_CUSTOM_PROTOCOL` | 自定义网络协议 |
|
|
48
|
+
| `COREMEDIA_HLS_LOW_LATENCY` | CoreMedia HLS 低延迟 |
|
|
49
|
+
| `SYSTEM_EXTENSION_INSTALL` | 系统扩展安装 |
|
|
50
|
+
| `USER_MANAGEMENT` | 用户管理 |
|
|
51
|
+
| `APPLE_ID_AUTH` | Apple ID 登录(Sign in with Apple) |
|
|
52
|
+
|
|
53
|
+
### CapabilitySetting 对象
|
|
54
|
+
|
|
55
|
+
用于配置特定能力的详细设置。
|
|
56
|
+
|
|
57
|
+
| 字段 | 类型 | 说明 |
|
|
58
|
+
|------|------|------|
|
|
59
|
+
| `key` | string | 设置项标识 |
|
|
60
|
+
| `name` | string | 设置项名称 |
|
|
61
|
+
| `description` | string | 设置项描述 |
|
|
62
|
+
| `enabledByDefault` | boolean | 是否默认启用 |
|
|
63
|
+
| `visible` | boolean | 是否可见 |
|
|
64
|
+
| `allowedInstances` | string | 允许的实例数: `ENTRY`, `SINGLE`, `MULTIPLE` |
|
|
65
|
+
| `minInstances` | integer | 最小实例数 |
|
|
66
|
+
| `options` | CapabilityOption[] | 可选配置项列表 |
|
|
67
|
+
|
|
68
|
+
**CapabilitySetting.key 枚举:**
|
|
69
|
+
|
|
70
|
+
| 值 | 说明 |
|
|
71
|
+
|----|------|
|
|
72
|
+
| `ICLOUD_VERSION` | iCloud 版本配置 |
|
|
73
|
+
| `DATA_PROTECTION_PERMISSION_LEVEL` | 数据保护权限级别 |
|
|
74
|
+
| `APPLE_ID_AUTH_APP_CONSENT` | Apple ID 登录应用同意配置 |
|
|
75
|
+
|
|
76
|
+
### CapabilityOption 对象
|
|
77
|
+
|
|
78
|
+
能力设置的具体选项。
|
|
79
|
+
|
|
80
|
+
| 字段 | 类型 | 说明 |
|
|
81
|
+
|------|------|------|
|
|
82
|
+
| `key` | string | 选项标识 |
|
|
83
|
+
| `name` | string | 选项名称 |
|
|
84
|
+
| `description` | string | 选项描述 |
|
|
85
|
+
| `enabledByDefault` | boolean | 是否默认启用 |
|
|
86
|
+
| `enabled` | boolean | 当前是否启用 |
|
|
87
|
+
| `supportsWildcard` | boolean | 是否支持通配符 Bundle ID |
|
|
88
|
+
|
|
89
|
+
**CapabilityOption.key 枚举:**
|
|
90
|
+
|
|
91
|
+
| 值 | 说明 |
|
|
92
|
+
|----|------|
|
|
93
|
+
| `XCODE_5` | iCloud - Xcode 5 兼容模式(Key-Value Storage) |
|
|
94
|
+
| `XCODE_6` | iCloud - Xcode 6+ 模式(CloudKit) |
|
|
95
|
+
| `COMPLETE_PROTECTION` | 数据保护 - 完全保护 |
|
|
96
|
+
| `PROTECTED_UNLESS_OPEN` | 数据保护 - 除非打开否则保护 |
|
|
97
|
+
| `PROTECTED_UNTIL_FIRST_USER_AUTH` | 数据保护 - 首次用户认证前保护 |
|
|
98
|
+
| `PRIMARY_APP_CONSENT` | Apple ID 登录 - 主应用同意 |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## API 端点
|
|
103
|
+
|
|
104
|
+
### 1. 启用 Bundle ID Capability
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
POST /v1/bundleIdCapabilities
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
为指定的 Bundle ID 启用一项新的能力。
|
|
111
|
+
|
|
112
|
+
#### 请求体 (BundleIdCapabilityCreateRequest)
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"data": {
|
|
117
|
+
"type": "bundleIdCapabilities",
|
|
118
|
+
"attributes": {
|
|
119
|
+
"capabilityType": "PUSH_NOTIFICATIONS",
|
|
120
|
+
"settings": []
|
|
121
|
+
},
|
|
122
|
+
"relationships": {
|
|
123
|
+
"bundleId": {
|
|
124
|
+
"data": {
|
|
125
|
+
"type": "bundleIds",
|
|
126
|
+
"id": "BUNDLE_ID_RESOURCE_ID"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**必填字段:**
|
|
135
|
+
|
|
136
|
+
| 字段 | 类型 | 说明 |
|
|
137
|
+
|------|------|------|
|
|
138
|
+
| `attributes.capabilityType` | CapabilityType | **必填** - 要启用的能力类型 |
|
|
139
|
+
| `relationships.bundleId.data.id` | string | **必填** - 目标 Bundle ID 的资源 ID |
|
|
140
|
+
|
|
141
|
+
**可选字段:**
|
|
142
|
+
|
|
143
|
+
| 字段 | 类型 | 说明 |
|
|
144
|
+
|------|------|------|
|
|
145
|
+
| `attributes.settings` | CapabilitySetting[] | 可选 - 能力配置选项(nullable) |
|
|
146
|
+
|
|
147
|
+
#### 需要配置 settings 的能力类型
|
|
148
|
+
|
|
149
|
+
大多数能力只需指定 `capabilityType`,但以下能力需要提供 `settings`:
|
|
150
|
+
|
|
151
|
+
**iCloud (`ICLOUD`)**
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"settings": [
|
|
155
|
+
{
|
|
156
|
+
"key": "ICLOUD_VERSION",
|
|
157
|
+
"options": [
|
|
158
|
+
{ "key": "XCODE_6", "enabled": true }
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**数据保护 (`DATA_PROTECTION`)**
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"settings": [
|
|
169
|
+
{
|
|
170
|
+
"key": "DATA_PROTECTION_PERMISSION_LEVEL",
|
|
171
|
+
"options": [
|
|
172
|
+
{ "key": "COMPLETE_PROTECTION", "enabled": true }
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Apple ID 登录 (`APPLE_ID_AUTH`)**
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"settings": [
|
|
183
|
+
{
|
|
184
|
+
"key": "APPLE_ID_AUTH_APP_CONSENT",
|
|
185
|
+
"options": [
|
|
186
|
+
{ "key": "PRIMARY_APP_CONSENT", "enabled": true }
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### 响应
|
|
194
|
+
|
|
195
|
+
| 状态码 | 说明 | 响应体 |
|
|
196
|
+
|--------|------|--------|
|
|
197
|
+
| 201 | 创建成功 | `BundleIdCapabilityResponse` |
|
|
198
|
+
| 400 | 请求参数错误 | `ErrorResponse` |
|
|
199
|
+
| 401 | 未认证 | `ErrorResponse` |
|
|
200
|
+
| 403 | 无权限 | `ErrorResponse` |
|
|
201
|
+
| 409 | 资源冲突(能力已启用) | `ErrorResponse` |
|
|
202
|
+
| 422 | 请求体无法处理 | `ErrorResponse` |
|
|
203
|
+
| 429 | 请求过于频繁 | `ErrorResponse` |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### 2. 更新 Bundle ID Capability
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
PATCH /v1/bundleIdCapabilities/{id}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
更新已启用的 Capability 配置。
|
|
214
|
+
|
|
215
|
+
#### 路径参数
|
|
216
|
+
|
|
217
|
+
| 参数 | 类型 | 说明 |
|
|
218
|
+
|------|------|------|
|
|
219
|
+
| `id` | string | **必填** - Capability 资源的唯一标识 |
|
|
220
|
+
|
|
221
|
+
#### 请求体 (BundleIdCapabilityUpdateRequest)
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"data": {
|
|
226
|
+
"type": "bundleIdCapabilities",
|
|
227
|
+
"id": "CAPABILITY_RESOURCE_ID",
|
|
228
|
+
"attributes": {
|
|
229
|
+
"capabilityType": "DATA_PROTECTION",
|
|
230
|
+
"settings": [
|
|
231
|
+
{
|
|
232
|
+
"key": "DATA_PROTECTION_PERMISSION_LEVEL",
|
|
233
|
+
"options": [
|
|
234
|
+
{ "key": "PROTECTED_UNLESS_OPEN", "enabled": true }
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**可更新字段:**
|
|
244
|
+
|
|
245
|
+
| 字段 | 类型 | 说明 |
|
|
246
|
+
|------|------|------|
|
|
247
|
+
| `attributes.capabilityType` | CapabilityType | 可选 - 能力类型(nullable) |
|
|
248
|
+
| `attributes.settings` | CapabilitySetting[] | 可选 - 更新的配置选项(nullable) |
|
|
249
|
+
|
|
250
|
+
#### 响应
|
|
251
|
+
|
|
252
|
+
| 状态码 | 说明 | 响应体 |
|
|
253
|
+
|--------|------|--------|
|
|
254
|
+
| 200 | 更新成功 | `BundleIdCapabilityResponse` |
|
|
255
|
+
| 400 | 请求参数错误 | `ErrorResponse` |
|
|
256
|
+
| 401 | 未认证 | `ErrorResponse` |
|
|
257
|
+
| 403 | 无权限 | `ErrorResponse` |
|
|
258
|
+
| 404 | 资源不存在 | `ErrorResponse` |
|
|
259
|
+
| 409 | 资源冲突 | `ErrorResponse` |
|
|
260
|
+
| 422 | 请求体无法处理 | `ErrorResponse` |
|
|
261
|
+
| 429 | 请求过于频繁 | `ErrorResponse` |
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### 3. 移除 Bundle ID Capability
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
DELETE /v1/bundleIdCapabilities/{id}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
移除 Bundle ID 上已启用的能力。
|
|
272
|
+
|
|
273
|
+
#### 路径参数
|
|
274
|
+
|
|
275
|
+
| 参数 | 类型 | 说明 |
|
|
276
|
+
|------|------|------|
|
|
277
|
+
| `id` | string | **必填** - Capability 资源的唯一标识 |
|
|
278
|
+
|
|
279
|
+
#### 响应
|
|
280
|
+
|
|
281
|
+
| 状态码 | 说明 |
|
|
282
|
+
|--------|------|
|
|
283
|
+
| 204 | 删除成功(无响应体) |
|
|
284
|
+
| 400 | 请求参数错误 |
|
|
285
|
+
| 401 | 未认证 |
|
|
286
|
+
| 403 | 无权限 |
|
|
287
|
+
| 404 | 资源不存在 |
|
|
288
|
+
| 429 | 请求过于频繁 |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 端点汇总
|
|
293
|
+
|
|
294
|
+
| 方法 | 路径 | 说明 |
|
|
295
|
+
|------|------|------|
|
|
296
|
+
| `POST` | `/v1/bundleIdCapabilities` | 为 Bundle ID 启用新能力 |
|
|
297
|
+
| `PATCH` | `/v1/bundleIdCapabilities/{id}` | 更新已启用的能力配置 |
|
|
298
|
+
| `DELETE` | `/v1/bundleIdCapabilities/{id}` | 移除已启用的能力 |
|
|
299
|
+
|
|
300
|
+
> 查询 Bundle ID 关联的 Capabilities 请参见 [Bundle IDs](bundle_ids.md) 文档中的关联端点。
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 使用示例
|
|
305
|
+
|
|
306
|
+
### 为 Bundle ID 启用推送通知
|
|
307
|
+
|
|
308
|
+
```json
|
|
309
|
+
POST /v1/bundleIdCapabilities
|
|
310
|
+
|
|
311
|
+
{
|
|
312
|
+
"data": {
|
|
313
|
+
"type": "bundleIdCapabilities",
|
|
314
|
+
"attributes": {
|
|
315
|
+
"capabilityType": "PUSH_NOTIFICATIONS"
|
|
316
|
+
},
|
|
317
|
+
"relationships": {
|
|
318
|
+
"bundleId": {
|
|
319
|
+
"data": {
|
|
320
|
+
"type": "bundleIds",
|
|
321
|
+
"id": "ABC123DEF"
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 为 Bundle ID 启用 iCloud(CloudKit 模式)
|
|
330
|
+
|
|
331
|
+
```json
|
|
332
|
+
POST /v1/bundleIdCapabilities
|
|
333
|
+
|
|
334
|
+
{
|
|
335
|
+
"data": {
|
|
336
|
+
"type": "bundleIdCapabilities",
|
|
337
|
+
"attributes": {
|
|
338
|
+
"capabilityType": "ICLOUD",
|
|
339
|
+
"settings": [
|
|
340
|
+
{
|
|
341
|
+
"key": "ICLOUD_VERSION",
|
|
342
|
+
"options": [
|
|
343
|
+
{ "key": "XCODE_6", "enabled": true }
|
|
344
|
+
]
|
|
345
|
+
}
|
|
346
|
+
]
|
|
347
|
+
},
|
|
348
|
+
"relationships": {
|
|
349
|
+
"bundleId": {
|
|
350
|
+
"data": {
|
|
351
|
+
"type": "bundleIds",
|
|
352
|
+
"id": "ABC123DEF"
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### 更新数据保护级别
|
|
361
|
+
|
|
362
|
+
```json
|
|
363
|
+
PATCH /v1/bundleIdCapabilities/CAP_ID_123
|
|
364
|
+
|
|
365
|
+
{
|
|
366
|
+
"data": {
|
|
367
|
+
"type": "bundleIdCapabilities",
|
|
368
|
+
"id": "CAP_ID_123",
|
|
369
|
+
"attributes": {
|
|
370
|
+
"capabilityType": "DATA_PROTECTION",
|
|
371
|
+
"settings": [
|
|
372
|
+
{
|
|
373
|
+
"key": "DATA_PROTECTION_PERMISSION_LEVEL",
|
|
374
|
+
"options": [
|
|
375
|
+
{ "key": "COMPLETE_PROTECTION", "enabled": true }
|
|
376
|
+
]
|
|
377
|
+
}
|
|
378
|
+
]
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
```
|