appstore-api-mcp 1.16.4 → 1.18.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/.env.example +10 -0
- package/CHANGELOG.md +52 -0
- package/README.md +7 -1
- package/docs/RECIPES.md +19 -0
- package/docs/TOOLS.md +65 -2
- package/package.json +1 -1
- package/src/guardrails.js +9 -2
- package/src/index.js +389 -4
- package/src/preflight-data/NOTICE.md +25 -0
- package/src/preflight-data/purpose_string_keys.json +703 -0
- package/src/preflight-data/required_reason_apis.json +343 -0
- package/src/preflight-data/sdks_requiring_manifest.json +591 -0
- package/src/preflight-rules.js +463 -0
- package/src/preflight-scan.js +615 -0
- package/src/storekit.js +136 -0
|
@@ -0,0 +1,703 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "https://developer.apple.com/documentation/bundleresources/protected-resources",
|
|
3
|
+
"note": "Generated from Apple's DocC JSON for each Info.plist key page.",
|
|
4
|
+
"keys": [
|
|
5
|
+
{
|
|
6
|
+
"key": "NFCReaderUsageDescription",
|
|
7
|
+
"xcodeName": "Privacy - NFC Scan Usage Description",
|
|
8
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s NFC hardware.",
|
|
9
|
+
"platforms": [
|
|
10
|
+
"iOS 11.0",
|
|
11
|
+
"iPadOS 11.0"
|
|
12
|
+
],
|
|
13
|
+
"deprecatedOn": [],
|
|
14
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NFCReaderUsageDescription"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"key": "NSAccessoryTrackingUsageDescription",
|
|
18
|
+
"xcodeName": "Privacy - Accessory Tracking Usage Description",
|
|
19
|
+
"abstract": "A message that tells a person why the app is requesting access to track accessory position and location.",
|
|
20
|
+
"platforms": [
|
|
21
|
+
"visionOS 26.0"
|
|
22
|
+
],
|
|
23
|
+
"deprecatedOn": [],
|
|
24
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAccessoryTrackingUsageDescription"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"key": "NSAppBundlesUsageDescription",
|
|
28
|
+
"xcodeName": "Privacy - App Management Usage Description",
|
|
29
|
+
"abstract": "A message that tells people why the app needs to access the contents of other apps’ bundles.",
|
|
30
|
+
"platforms": [
|
|
31
|
+
"macOS 13.0"
|
|
32
|
+
],
|
|
33
|
+
"deprecatedOn": [],
|
|
34
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAppBundlesUsageDescription"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"key": "NSAppDataUsageDescription",
|
|
38
|
+
"xcodeName": "Privacy - Other Application Data Usage Description",
|
|
39
|
+
"abstract": "A message that tells people why the app needs to access files in other apps’ sandbox containers.",
|
|
40
|
+
"platforms": [
|
|
41
|
+
"macOS 14.0"
|
|
42
|
+
],
|
|
43
|
+
"deprecatedOn": [],
|
|
44
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAppDataUsageDescription"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"key": "NSAppleEventsUsageDescription",
|
|
48
|
+
"xcodeName": "Privacy - AppleEvents Sending Usage Description",
|
|
49
|
+
"abstract": "A message that tells people why the app is requesting the ability to send Apple events.",
|
|
50
|
+
"platforms": [
|
|
51
|
+
"macOS 10.14"
|
|
52
|
+
],
|
|
53
|
+
"deprecatedOn": [],
|
|
54
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAppleEventsUsageDescription"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"key": "NSAppleMusicUsageDescription",
|
|
58
|
+
"xcodeName": "Privacy - Media Library Usage Description",
|
|
59
|
+
"abstract": "A message that tells people why the app is requesting access to their media library.",
|
|
60
|
+
"platforms": [
|
|
61
|
+
"iOS 2.0",
|
|
62
|
+
"iPadOS 2.0",
|
|
63
|
+
"macOS 15.0",
|
|
64
|
+
"visionOS 1.0"
|
|
65
|
+
],
|
|
66
|
+
"deprecatedOn": [],
|
|
67
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAppleMusicUsageDescription"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"key": "NSAudioCaptureUsageDescription",
|
|
71
|
+
"xcodeName": null,
|
|
72
|
+
"abstract": "A message that tells people why your app is requesting access to capture system audio on macOS.",
|
|
73
|
+
"platforms": [
|
|
74
|
+
"macOS 14.2"
|
|
75
|
+
],
|
|
76
|
+
"deprecatedOn": [],
|
|
77
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSAudioCaptureUsageDescription"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"key": "NSBluetoothAlwaysUsageDescription",
|
|
81
|
+
"xcodeName": "Privacy - Bluetooth Always Usage Description",
|
|
82
|
+
"abstract": "A message that tells people why the app needs access to Bluetooth.",
|
|
83
|
+
"platforms": [
|
|
84
|
+
"iOS 13.0",
|
|
85
|
+
"iPadOS 13.0",
|
|
86
|
+
"macOS 11.0",
|
|
87
|
+
"tvOS 13.0",
|
|
88
|
+
"visionOS 1.0",
|
|
89
|
+
"watchOS 6.0"
|
|
90
|
+
],
|
|
91
|
+
"deprecatedOn": [],
|
|
92
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSBluetoothAlwaysUsageDescription"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"key": "NSBluetoothPeripheralUsageDescription",
|
|
96
|
+
"xcodeName": "Privacy - Bluetooth Peripheral Usage Description",
|
|
97
|
+
"abstract": "A message that tells people why the app is requesting the ability to connect to Bluetooth peripherals.",
|
|
98
|
+
"platforms": [
|
|
99
|
+
"iOS 6.0",
|
|
100
|
+
"iPadOS 6.0"
|
|
101
|
+
],
|
|
102
|
+
"deprecatedOn": [],
|
|
103
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSBluetoothPeripheralUsageDescription"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"key": "NSCalendarsFullAccessUsageDescription",
|
|
107
|
+
"xcodeName": "Privacy - Calendars Full Access Usage Description",
|
|
108
|
+
"abstract": "A message that tells people why the app is requesting access to read and write their calendar data.",
|
|
109
|
+
"platforms": [
|
|
110
|
+
"iOS 17.0",
|
|
111
|
+
"iPadOS 17.0",
|
|
112
|
+
"Mac Catalyst 17.0",
|
|
113
|
+
"macOS 14.0",
|
|
114
|
+
"visionOS 1.0",
|
|
115
|
+
"watchOS 10.0"
|
|
116
|
+
],
|
|
117
|
+
"deprecatedOn": [],
|
|
118
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSCalendarsFullAccessUsageDescription"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"key": "NSCalendarsUsageDescription",
|
|
122
|
+
"xcodeName": "Privacy - Calendars Usage Description",
|
|
123
|
+
"abstract": "A message that tells people why the app is requesting access to their calendar data.",
|
|
124
|
+
"platforms": [
|
|
125
|
+
"iOS 6.0",
|
|
126
|
+
"iPadOS 6.0",
|
|
127
|
+
"Mac Catalyst 13.0",
|
|
128
|
+
"macOS 10.14",
|
|
129
|
+
"watchOS 6.0"
|
|
130
|
+
],
|
|
131
|
+
"deprecatedOn": [],
|
|
132
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSCalendarsUsageDescription"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"key": "NSCalendarsWriteOnlyAccessUsageDescription",
|
|
136
|
+
"xcodeName": "Privacy - Calendars Write Only Usage Description",
|
|
137
|
+
"abstract": "A message that tells people why the app is requesting access to create calendar events.",
|
|
138
|
+
"platforms": [
|
|
139
|
+
"iOS 17.0",
|
|
140
|
+
"iPadOS 17.0",
|
|
141
|
+
"Mac Catalyst 17.0",
|
|
142
|
+
"macOS 14.0",
|
|
143
|
+
"visionOS 1.0",
|
|
144
|
+
"watchOS 10.0"
|
|
145
|
+
],
|
|
146
|
+
"deprecatedOn": [],
|
|
147
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSCalendarsWriteOnlyAccessUsageDescription"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"key": "NSCameraUsageDescription",
|
|
151
|
+
"xcodeName": "Privacy - Camera Usage Description",
|
|
152
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s camera.",
|
|
153
|
+
"platforms": [
|
|
154
|
+
"iOS 7.0",
|
|
155
|
+
"iPadOS 7.0",
|
|
156
|
+
"macOS 10.14",
|
|
157
|
+
"tvOS 17.0",
|
|
158
|
+
"visionOS 1.0"
|
|
159
|
+
],
|
|
160
|
+
"deprecatedOn": [],
|
|
161
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSCameraUsageDescription"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"key": "NSContactsUsageDescription",
|
|
165
|
+
"xcodeName": "Privacy - Contacts Usage Description",
|
|
166
|
+
"abstract": "A message that tells people why the app is requesting access to their contacts.",
|
|
167
|
+
"platforms": [
|
|
168
|
+
"iOS 6.0",
|
|
169
|
+
"iPadOS 6.0",
|
|
170
|
+
"macOS 10.8",
|
|
171
|
+
"visionOS 1.0"
|
|
172
|
+
],
|
|
173
|
+
"deprecatedOn": [],
|
|
174
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSContactsUsageDescription"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"key": "NSCriticalMessagingUsageDescription",
|
|
178
|
+
"xcodeName": "Privacy - Critical Messaging Usage Description",
|
|
179
|
+
"abstract": "A message that tells people why the app needs to send SMS messages.",
|
|
180
|
+
"platforms": [
|
|
181
|
+
"iOS 18.2",
|
|
182
|
+
"iPadOS 18.2",
|
|
183
|
+
"watchOS 11.2"
|
|
184
|
+
],
|
|
185
|
+
"deprecatedOn": [],
|
|
186
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSCriticalMessagingUsageDescription"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"key": "NSDesktopFolderUsageDescription",
|
|
190
|
+
"xcodeName": "Privacy - Desktop Folder Usage Description",
|
|
191
|
+
"abstract": "A message that tells people why the app needs access to their Desktop folder.",
|
|
192
|
+
"platforms": [
|
|
193
|
+
"macOS 10.15"
|
|
194
|
+
],
|
|
195
|
+
"deprecatedOn": [],
|
|
196
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSDesktopFolderUsageDescription"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"key": "NSDocumentsFolderUsageDescription",
|
|
200
|
+
"xcodeName": "Privacy - Documents Folder Usage Description",
|
|
201
|
+
"abstract": "",
|
|
202
|
+
"platforms": [
|
|
203
|
+
"macOS 10.15"
|
|
204
|
+
],
|
|
205
|
+
"deprecatedOn": [],
|
|
206
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSDocumentsFolderUsageDescription"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"key": "NSDownloadsFolderUsageDescription",
|
|
210
|
+
"xcodeName": "Privacy - Downloads Folder Usage Description",
|
|
211
|
+
"abstract": "A message that tells people why the app needs access to the user’s Downloads folder.",
|
|
212
|
+
"platforms": [
|
|
213
|
+
"macOS 10.15"
|
|
214
|
+
],
|
|
215
|
+
"deprecatedOn": [],
|
|
216
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSDownloadsFolderUsageDescription"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"key": "NSEnterpriseMCAMUsageDescription",
|
|
220
|
+
"xcodeName": "Main Camera Usage Description",
|
|
221
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s main camera.",
|
|
222
|
+
"platforms": [
|
|
223
|
+
"visionOS 2.0"
|
|
224
|
+
],
|
|
225
|
+
"deprecatedOn": [],
|
|
226
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSEnterpriseMCAMUsageDescription"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"key": "NSFaceIDUsageDescription",
|
|
230
|
+
"xcodeName": "Privacy - Face ID Usage Description",
|
|
231
|
+
"abstract": "A message that tells people why the app is requesting the ability to authenticate with Face ID.",
|
|
232
|
+
"platforms": [
|
|
233
|
+
"iOS 11.0",
|
|
234
|
+
"iPadOS 11.0"
|
|
235
|
+
],
|
|
236
|
+
"deprecatedOn": [],
|
|
237
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSFaceIDUsageDescription"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"key": "NSFallDetectionUsageDescription",
|
|
241
|
+
"xcodeName": "Privacy - Fall Detection Usage Description",
|
|
242
|
+
"abstract": "A message to the user that explains the app’s request for permission to access fall detection event data.",
|
|
243
|
+
"platforms": [
|
|
244
|
+
"iOS 14.2",
|
|
245
|
+
"iPadOS 14.2",
|
|
246
|
+
"visionOS 1.0",
|
|
247
|
+
"watchOS 7.2"
|
|
248
|
+
],
|
|
249
|
+
"deprecatedOn": [],
|
|
250
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSFallDetectionUsageDescription"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"key": "NSFileProviderDomainUsageDescription",
|
|
254
|
+
"xcodeName": "Privacy - Access to a File Provide Domain Usage Description",
|
|
255
|
+
"abstract": "A message that tells people why the app needs access to files managed by a file provider.",
|
|
256
|
+
"platforms": [
|
|
257
|
+
"macOS 10.15"
|
|
258
|
+
],
|
|
259
|
+
"deprecatedOn": [],
|
|
260
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSFileProviderDomainUsageDescription"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"key": "NSFileProviderPresenceUsageDescription",
|
|
264
|
+
"xcodeName": "Privacy - File Provider Presence Usage Description",
|
|
265
|
+
"abstract": "A message that tells people why the app’s file provider needs to determine which files the person is currently accessing.",
|
|
266
|
+
"platforms": [
|
|
267
|
+
"macOS 10.15"
|
|
268
|
+
],
|
|
269
|
+
"deprecatedOn": [],
|
|
270
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSFileProviderPresenceUsageDescription"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"key": "NSFinancialDataUsageDescription",
|
|
274
|
+
"xcodeName": "Privacy - Financial Data Usage Description",
|
|
275
|
+
"abstract": "A message that tells people why the app is requesting access to financial data stored in Wallet.",
|
|
276
|
+
"platforms": [
|
|
277
|
+
"iOS 17.4",
|
|
278
|
+
"iPadOS 17.4"
|
|
279
|
+
],
|
|
280
|
+
"deprecatedOn": [],
|
|
281
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSFinancialDataUsageDescription"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"key": "NSGKFriendListUsageDescription",
|
|
285
|
+
"xcodeName": null,
|
|
286
|
+
"abstract": "A message that tells people why the app needs access to their Game Center friends list.",
|
|
287
|
+
"platforms": [
|
|
288
|
+
"iOS 14.5",
|
|
289
|
+
"iPadOS 14.5"
|
|
290
|
+
],
|
|
291
|
+
"deprecatedOn": [],
|
|
292
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSGKFriendListUsageDescription"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"key": "NSHandsTrackingUsageDescription",
|
|
296
|
+
"xcodeName": "Privacy - Hands Tracking Usage Description",
|
|
297
|
+
"abstract": "A message that tells people why the app is requesting access to track their hand position and location.",
|
|
298
|
+
"platforms": [
|
|
299
|
+
"visionOS 1.0"
|
|
300
|
+
],
|
|
301
|
+
"deprecatedOn": [],
|
|
302
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSHandsTrackingUsageDescription"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"key": "NSHealthClinicalHealthRecordsShareUsageDescription",
|
|
306
|
+
"xcodeName": "Privacy - Health Records Usage Description",
|
|
307
|
+
"abstract": "A message to the user that explains why the app requested permission to read clinical records.",
|
|
308
|
+
"platforms": [
|
|
309
|
+
"iOS 12.0",
|
|
310
|
+
"iPadOS 12.0",
|
|
311
|
+
"visionOS 1.0"
|
|
312
|
+
],
|
|
313
|
+
"deprecatedOn": [],
|
|
314
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSHealthClinicalHealthRecordsShareUsageDescription"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"key": "NSHealthShareUsageDescription",
|
|
318
|
+
"xcodeName": "Privacy - Health Share Usage Description",
|
|
319
|
+
"abstract": "A message that explains to people why the app requests permission to read samples from the HealthKit store.",
|
|
320
|
+
"platforms": [
|
|
321
|
+
"iOS 8.0",
|
|
322
|
+
"iPadOS 8.0",
|
|
323
|
+
"visionOS 1.0"
|
|
324
|
+
],
|
|
325
|
+
"deprecatedOn": [],
|
|
326
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSHealthShareUsageDescription"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"key": "NSHealthUpdateUsageDescription",
|
|
330
|
+
"xcodeName": "Privacy - Health Update Usage Description",
|
|
331
|
+
"abstract": "A message to the user that explains why the app requested permission to save samples to the HealthKit store.",
|
|
332
|
+
"platforms": [
|
|
333
|
+
"iOS 8.0",
|
|
334
|
+
"iPadOS 8.0",
|
|
335
|
+
"visionOS 1.0"
|
|
336
|
+
],
|
|
337
|
+
"deprecatedOn": [],
|
|
338
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSHealthUpdateUsageDescription"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"key": "NSHomeKitUsageDescription",
|
|
342
|
+
"xcodeName": "Privacy - HomeKit Usage Description",
|
|
343
|
+
"abstract": "A message that tells people why the app is requesting access to their HomeKit configuration data.",
|
|
344
|
+
"platforms": [
|
|
345
|
+
"iOS 8.0",
|
|
346
|
+
"iPadOS 8.0",
|
|
347
|
+
"visionOS 1.0",
|
|
348
|
+
"watchOS 2.0"
|
|
349
|
+
],
|
|
350
|
+
"deprecatedOn": [],
|
|
351
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSHomeKitUsageDescription"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"key": "NSIdentityUsageDescription",
|
|
355
|
+
"xcodeName": "Privacy - Identity Usage Description",
|
|
356
|
+
"abstract": "A message that tells people why the app is requesting identity information.",
|
|
357
|
+
"platforms": [
|
|
358
|
+
"iOS 16.0",
|
|
359
|
+
"iPadOS 16.0",
|
|
360
|
+
"visionOS 1.0"
|
|
361
|
+
],
|
|
362
|
+
"deprecatedOn": [],
|
|
363
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSIdentityUsageDescription"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"key": "NSIdentityUsageDescriptionDictionary",
|
|
367
|
+
"xcodeName": "Privacy - Identity Usage Description Dictionary",
|
|
368
|
+
"abstract": "A dictionary that contains messages that explain why your app is requesting identity information.",
|
|
369
|
+
"platforms": [
|
|
370
|
+
"iOS 26.2",
|
|
371
|
+
"iPadOS 26.2",
|
|
372
|
+
"visionOS 1.0"
|
|
373
|
+
],
|
|
374
|
+
"deprecatedOn": [],
|
|
375
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSIdentityUsageDescriptionDictionary"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"key": "NSLocalNetworkUsageDescription",
|
|
379
|
+
"xcodeName": "Privacy - Local Network Usage Description",
|
|
380
|
+
"abstract": "A message that tells people why the app is requesting access to the local network.",
|
|
381
|
+
"platforms": [
|
|
382
|
+
"iOS 14.0",
|
|
383
|
+
"iPadOS 14.0",
|
|
384
|
+
"macOS 11.0",
|
|
385
|
+
"tvOS 14.0",
|
|
386
|
+
"visionOS 1.0"
|
|
387
|
+
],
|
|
388
|
+
"deprecatedOn": [],
|
|
389
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocalNetworkUsageDescription"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"key": "NSLocationAlwaysAndWhenInUseUsageDescription",
|
|
393
|
+
"xcodeName": "Privacy - Location Always and When In Use Usage Description",
|
|
394
|
+
"abstract": "A message that tells people why the app is requesting access to their location information at all times.",
|
|
395
|
+
"platforms": [
|
|
396
|
+
"iOS 11.0",
|
|
397
|
+
"iPadOS 11.0",
|
|
398
|
+
"visionOS 1.0"
|
|
399
|
+
],
|
|
400
|
+
"deprecatedOn": [],
|
|
401
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocationAlwaysAndWhenInUseUsageDescription"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"key": "NSLocationAlwaysUsageDescription",
|
|
405
|
+
"xcodeName": "Privacy - Location Always Usage Description",
|
|
406
|
+
"abstract": "A message that tells people why the app is requesting access to their location at all times.",
|
|
407
|
+
"platforms": [
|
|
408
|
+
"iOS 8.0",
|
|
409
|
+
"iPadOS 8.0"
|
|
410
|
+
],
|
|
411
|
+
"deprecatedOn": [],
|
|
412
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocationAlwaysUsageDescription"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"key": "NSLocationTemporaryUsageDescriptionDictionary",
|
|
416
|
+
"xcodeName": "Privacy - Location Temporary Usage Description Dictionary",
|
|
417
|
+
"abstract": "A collection of messages that explain why the app is requesting temporary access to their location.",
|
|
418
|
+
"platforms": [
|
|
419
|
+
"iOS 14.0",
|
|
420
|
+
"iPadOS 14.0",
|
|
421
|
+
"macOS 11.0",
|
|
422
|
+
"visionOS 1.0"
|
|
423
|
+
],
|
|
424
|
+
"deprecatedOn": [],
|
|
425
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocationTemporaryUsageDescriptionDictionary"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"key": "NSLocationUsageDescription",
|
|
429
|
+
"xcodeName": "Privacy - Location Usage Description",
|
|
430
|
+
"abstract": "A message that tells people why the app is requesting access to their location information.",
|
|
431
|
+
"platforms": [
|
|
432
|
+
"iOS 6.0",
|
|
433
|
+
"iPadOS 6.0",
|
|
434
|
+
"macOS 10.14"
|
|
435
|
+
],
|
|
436
|
+
"deprecatedOn": [],
|
|
437
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocationUsageDescription"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"key": "NSLocationWhenInUseUsageDescription",
|
|
441
|
+
"xcodeName": "Privacy - Location When In Use Usage Description",
|
|
442
|
+
"abstract": "A message that tells people why the app is requesting access to their location information while the app is running in the foreground.",
|
|
443
|
+
"platforms": [
|
|
444
|
+
"iOS 11.0",
|
|
445
|
+
"iPadOS 11.0",
|
|
446
|
+
"visionOS 1.0"
|
|
447
|
+
],
|
|
448
|
+
"deprecatedOn": [],
|
|
449
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSLocationWhenInUseUsageDescription"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"key": "NSMainCameraUsageDescription",
|
|
453
|
+
"xcodeName": "Main Camera Usage Description",
|
|
454
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s main camera.",
|
|
455
|
+
"platforms": [
|
|
456
|
+
"visionOS 26.0"
|
|
457
|
+
],
|
|
458
|
+
"deprecatedOn": [],
|
|
459
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSMainCameraUsageDescription"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"key": "NSMicrophoneUsageDescription",
|
|
463
|
+
"xcodeName": "Privacy - Microphone Usage Description",
|
|
464
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s microphone.",
|
|
465
|
+
"platforms": [
|
|
466
|
+
"iOS 7.0",
|
|
467
|
+
"iPadOS 7.0",
|
|
468
|
+
"macOS 10.14",
|
|
469
|
+
"tvOS 17.0",
|
|
470
|
+
"visionOS 1.0",
|
|
471
|
+
"watchOS 4.0"
|
|
472
|
+
],
|
|
473
|
+
"deprecatedOn": [],
|
|
474
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSMicrophoneUsageDescription"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"key": "NSMotionUsageDescription",
|
|
478
|
+
"xcodeName": "Privacy - Motion Usage Description",
|
|
479
|
+
"abstract": "A message that tells people why the app is requesting access to the device’s motion data.",
|
|
480
|
+
"platforms": [
|
|
481
|
+
"iOS 7.0",
|
|
482
|
+
"iPadOS 7.0",
|
|
483
|
+
"macOS 10.15",
|
|
484
|
+
"visionOS 1.0"
|
|
485
|
+
],
|
|
486
|
+
"deprecatedOn": [],
|
|
487
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSMotionUsageDescription"
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"key": "NSNearbyInteractionAllowOnceUsageDescription",
|
|
491
|
+
"xcodeName": "Privacy - Nearby Interaction Allow Once Usage Description",
|
|
492
|
+
"abstract": "A one-time request for user permission to begin an interaction session with nearby devices.",
|
|
493
|
+
"platforms": [
|
|
494
|
+
"iOS 14.0",
|
|
495
|
+
"iPadOS 14.0"
|
|
496
|
+
],
|
|
497
|
+
"deprecatedOn": [],
|
|
498
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSNearbyInteractionAllowOnceUsageDescription"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"key": "NSNearbyInteractionUsageDescription",
|
|
502
|
+
"xcodeName": "Privacy - Nearby Interaction Usage Description",
|
|
503
|
+
"abstract": "A request for user permission to begin an interaction session with nearby devices.",
|
|
504
|
+
"platforms": [
|
|
505
|
+
"iOS 15.0",
|
|
506
|
+
"iPadOS 15.0",
|
|
507
|
+
"watchOS 8.0"
|
|
508
|
+
],
|
|
509
|
+
"deprecatedOn": [],
|
|
510
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSNearbyInteractionUsageDescription"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"key": "NSNetworkVolumesUsageDescription",
|
|
514
|
+
"xcodeName": "Privacy - Network Volumes Usage Description",
|
|
515
|
+
"abstract": "A message that tells people why the app needs access to files on a network volume.",
|
|
516
|
+
"platforms": [
|
|
517
|
+
"macOS 10.15"
|
|
518
|
+
],
|
|
519
|
+
"deprecatedOn": [],
|
|
520
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSNetworkVolumesUsageDescription"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"key": "NSPhotoLibraryAddUsageDescription",
|
|
524
|
+
"xcodeName": "Privacy - Photo Library Additions Usage Description",
|
|
525
|
+
"abstract": "A message that tells people why the app is requesting add-only access to their photo library.",
|
|
526
|
+
"platforms": [
|
|
527
|
+
"iOS 11.0",
|
|
528
|
+
"iPadOS 11.0",
|
|
529
|
+
"visionOS 1.0"
|
|
530
|
+
],
|
|
531
|
+
"deprecatedOn": [],
|
|
532
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSPhotoLibraryAddUsageDescription"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"key": "NSPhotoLibraryUsageDescription",
|
|
536
|
+
"xcodeName": "Privacy - Photo Library Usage Description",
|
|
537
|
+
"abstract": "A message that tells people why the app is requesting access to their photo library.",
|
|
538
|
+
"platforms": [
|
|
539
|
+
"iOS 6.0",
|
|
540
|
+
"iPadOS 6.0",
|
|
541
|
+
"macOS 10.14",
|
|
542
|
+
"visionOS 1.0"
|
|
543
|
+
],
|
|
544
|
+
"deprecatedOn": [],
|
|
545
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSPhotoLibraryUsageDescription"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"key": "NSRemindersFullAccessUsageDescription",
|
|
549
|
+
"xcodeName": "Privacy - Reminders Full Access Usage Description",
|
|
550
|
+
"abstract": "A message that tells people why the app is requesting access to read and write their reminders data.",
|
|
551
|
+
"platforms": [
|
|
552
|
+
"iOS 17.0",
|
|
553
|
+
"iPadOS 17.0",
|
|
554
|
+
"Mac Catalyst 17.0",
|
|
555
|
+
"macOS 14.0",
|
|
556
|
+
"visionOS 1.0",
|
|
557
|
+
"watchOS 10.0"
|
|
558
|
+
],
|
|
559
|
+
"deprecatedOn": [],
|
|
560
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSRemindersFullAccessUsageDescription"
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"key": "NSRemindersUsageDescription",
|
|
564
|
+
"xcodeName": "Privacy - Reminders Usage Description",
|
|
565
|
+
"abstract": "A message that tells people why the app is requesting access to their reminders.",
|
|
566
|
+
"platforms": [
|
|
567
|
+
"iOS 6.0",
|
|
568
|
+
"iPadOS 6.0",
|
|
569
|
+
"Mac Catalyst 13.0",
|
|
570
|
+
"macOS 10.14",
|
|
571
|
+
"watchOS 6.0"
|
|
572
|
+
],
|
|
573
|
+
"deprecatedOn": [],
|
|
574
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSRemindersUsageDescription"
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"key": "NSRemovableVolumesUsageDescription",
|
|
578
|
+
"xcodeName": "Privacy - Removable Volumes Usage Description",
|
|
579
|
+
"abstract": "A message that tells people why the app needs access to files on a removable volume.",
|
|
580
|
+
"platforms": [
|
|
581
|
+
"macOS 10.15"
|
|
582
|
+
],
|
|
583
|
+
"deprecatedOn": [],
|
|
584
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSRemovableVolumesUsageDescription"
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"key": "NSSensorKitUsageDescription",
|
|
588
|
+
"xcodeName": null,
|
|
589
|
+
"abstract": "A short description of the purpose of your app’s research study.",
|
|
590
|
+
"platforms": [
|
|
591
|
+
"iOS 14.0",
|
|
592
|
+
"iPadOS 14.0"
|
|
593
|
+
],
|
|
594
|
+
"deprecatedOn": [],
|
|
595
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSSensorKitUsageDescription"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"key": "NSSiriUsageDescription",
|
|
599
|
+
"xcodeName": "Privacy - Siri Usage Description",
|
|
600
|
+
"abstract": "A message that tells people why the app is requesting to send user data to Siri.",
|
|
601
|
+
"platforms": [
|
|
602
|
+
"iOS 10.0",
|
|
603
|
+
"iPadOS 10.0",
|
|
604
|
+
"visionOS 1.0"
|
|
605
|
+
],
|
|
606
|
+
"deprecatedOn": [],
|
|
607
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSSiriUsageDescription"
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"key": "NSSpeechRecognitionUsageDescription",
|
|
611
|
+
"xcodeName": "Privacy - Speech Recognition Usage Description",
|
|
612
|
+
"abstract": "A message that tells people why the app is requesting to send user data to Apple’s speech recognition servers.",
|
|
613
|
+
"platforms": [
|
|
614
|
+
"iOS 10.0",
|
|
615
|
+
"iPadOS 10.0",
|
|
616
|
+
"macOS 10.15",
|
|
617
|
+
"visionOS 1.0"
|
|
618
|
+
],
|
|
619
|
+
"deprecatedOn": [],
|
|
620
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSSpeechRecognitionUsageDescription"
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"key": "NSSystemAdministrationUsageDescription",
|
|
624
|
+
"xcodeName": "Privacy - System Administration Usage Description",
|
|
625
|
+
"abstract": "A message in macOS that tells people why the app is requesting to manipulate the system configuration.",
|
|
626
|
+
"platforms": [
|
|
627
|
+
"macOS 10.14"
|
|
628
|
+
],
|
|
629
|
+
"deprecatedOn": [],
|
|
630
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSSystemAdministrationUsageDescription"
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"key": "NSSystemExtensionUsageDescription",
|
|
634
|
+
"xcodeName": "Privacy - System Extension Usage Description",
|
|
635
|
+
"abstract": "A message that tells people why the app is trying to install a system extension bundle.",
|
|
636
|
+
"platforms": [
|
|
637
|
+
"iOS 18.4",
|
|
638
|
+
"iPadOS 18.4",
|
|
639
|
+
"Mac Catalyst 18.4",
|
|
640
|
+
"macOS 10.15"
|
|
641
|
+
],
|
|
642
|
+
"deprecatedOn": [],
|
|
643
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSSystemExtensionUsageDescription"
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
"key": "NSUserTrackingMarkdownUsageDescription",
|
|
647
|
+
"xcodeName": "Privacy - Tracking Markdown Usage Description",
|
|
648
|
+
"abstract": "A message that explains the purpose for accessing data that an application can use to track a person or device.",
|
|
649
|
+
"platforms": [
|
|
650
|
+
"iOS 27.2",
|
|
651
|
+
"iPadOS 27.2"
|
|
652
|
+
],
|
|
653
|
+
"deprecatedOn": [],
|
|
654
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSUserTrackingMarkdownUsageDescription"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"key": "NSUserTrackingUsageDescription",
|
|
658
|
+
"xcodeName": "Privacy - Tracking Usage Description",
|
|
659
|
+
"abstract": "A message that explains the purpose for accessing data that an app can use to track a person or device.",
|
|
660
|
+
"platforms": [
|
|
661
|
+
"iOS 14.0",
|
|
662
|
+
"iPadOS 14.0",
|
|
663
|
+
"tvOS 14.0",
|
|
664
|
+
"visionOS 1.0"
|
|
665
|
+
],
|
|
666
|
+
"deprecatedOn": [],
|
|
667
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSUserTrackingUsageDescription"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"key": "NSVideoSubscriberAccountUsageDescription",
|
|
671
|
+
"xcodeName": "Privacy - Video Subscriber Account Usage Description",
|
|
672
|
+
"abstract": "A message that tells people why the app is requesting access to their TV provider account.",
|
|
673
|
+
"platforms": [
|
|
674
|
+
"tvOS 9.0"
|
|
675
|
+
],
|
|
676
|
+
"deprecatedOn": [],
|
|
677
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSVideoSubscriberAccountUsageDescription"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"key": "NSWorldSensingUsageDescription",
|
|
681
|
+
"xcodeName": "Privacy - World Sensing Usage Description",
|
|
682
|
+
"abstract": "A message that tells people why the app is requesting access to image tracking, plane detection, or scene reconstruction.",
|
|
683
|
+
"platforms": [
|
|
684
|
+
"visionOS 1.0"
|
|
685
|
+
],
|
|
686
|
+
"deprecatedOn": [],
|
|
687
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/NSWorldSensingUsageDescription"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"key": "OSBundleUsageDescription",
|
|
691
|
+
"xcodeName": "Privacy - Driver Extension Usage Description",
|
|
692
|
+
"abstract": "A message that tells people why the app is trying to install a driver extension bundle.",
|
|
693
|
+
"platforms": [
|
|
694
|
+
"iOS 18.4",
|
|
695
|
+
"iPadOS 18.4",
|
|
696
|
+
"Mac Catalyst 18.4",
|
|
697
|
+
"macOS 10.15"
|
|
698
|
+
],
|
|
699
|
+
"deprecatedOn": [],
|
|
700
|
+
"url": "https://developer.apple.com/documentation/BundleResources/Information-Property-List/OSBundleUsageDescription"
|
|
701
|
+
}
|
|
702
|
+
]
|
|
703
|
+
}
|