mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
[AltStoreCore] Adds Permissions.plist with definitions for most known permissions
Simpler to update over time as a separate plist rather than in source code.
This commit is contained in:
@@ -8,9 +8,9 @@
|
||||
|
||||
import AltSign
|
||||
|
||||
public extension ALTAppPermissionType
|
||||
extension ALTAppPermissionType
|
||||
{
|
||||
var localizedName: String? {
|
||||
public var localizedName: String? {
|
||||
switch self
|
||||
{
|
||||
case .unknown: return NSLocalizedString("Permission", comment: "")
|
||||
@@ -19,25 +19,78 @@ public extension ALTAppPermissionType
|
||||
default: return nil
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate var knownPermissionsKey: String? {
|
||||
switch self
|
||||
{
|
||||
case .unknown: return nil
|
||||
case .entitlement: return "entitlements"
|
||||
case .privacy: return "privacy"
|
||||
default: return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public protocol ALTAppPermission: RawRepresentable<String>, Hashable
|
||||
{
|
||||
var type: ALTAppPermissionType { get }
|
||||
var symbolName: String? { get }
|
||||
|
||||
var localizedName: String? { get }
|
||||
var synthesizedName: String? { get } // Kupo!
|
||||
|
||||
// Default implementations
|
||||
var localizedName: String? { get }
|
||||
var localizedDescription: String? { get }
|
||||
var symbolName: String? { get }
|
||||
|
||||
// Convenience properties with default implementations.
|
||||
// Convenience properties (also with default implementations).
|
||||
// Would normally just be in extension, except that crashes Swift 5.8 compiler ¯\_(ツ)_/¯
|
||||
var isKnown: Bool { get }
|
||||
var effectiveSymbolName: String { get }
|
||||
var localizedDisplayName: String { get }
|
||||
}
|
||||
|
||||
private struct KnownPermission: Decodable
|
||||
{
|
||||
var localizedName: String
|
||||
var localizedDescription: String
|
||||
var rawValue: String
|
||||
var symbolName: String
|
||||
|
||||
private enum CodingKeys: String, CodingKey
|
||||
{
|
||||
case localizedName = "name"
|
||||
case localizedDescription = "description"
|
||||
case rawValue = "key"
|
||||
case symbolName = "symbol"
|
||||
}
|
||||
}
|
||||
|
||||
private let knownPermissions: [String: [String: KnownPermission]] = {
|
||||
guard let fileURL = Bundle(for: DatabaseManager.self).url(forResource: "Permissions", withExtension: "plist"),
|
||||
let data = try? Data(contentsOf: fileURL),
|
||||
let propertyList = try? PropertyListDecoder().decode([String: [String: KnownPermission]].self, from: data)
|
||||
else {
|
||||
fatalError("Could not decode Permissions.plist.")
|
||||
}
|
||||
|
||||
return propertyList
|
||||
}()
|
||||
|
||||
public extension ALTAppPermission
|
||||
{
|
||||
private var knownPermission: KnownPermission? {
|
||||
guard let key = self.type.knownPermissionsKey,
|
||||
let permissions = knownPermissions[key]
|
||||
else { return nil }
|
||||
|
||||
let knownPermission = permissions[self.rawValue]
|
||||
return knownPermission
|
||||
}
|
||||
|
||||
var localizedName: String? { self.knownPermission?.localizedName }
|
||||
var localizedDescription: String? { self.knownPermission?.localizedDescription }
|
||||
var symbolName: String? { self.knownPermission?.symbolName }
|
||||
}
|
||||
|
||||
public extension ALTAppPermission
|
||||
{
|
||||
var isKnown: Bool {
|
||||
@@ -50,10 +103,7 @@ public extension ALTAppPermission
|
||||
var localizedDisplayName: String {
|
||||
return self.localizedName ?? self.synthesizedName ?? self.rawValue
|
||||
}
|
||||
}
|
||||
|
||||
public extension ALTAppPermission
|
||||
{
|
||||
|
||||
func isEqual(_ permission: any ALTAppPermission) -> Bool
|
||||
{
|
||||
guard let permission = permission as? Self else { return false }
|
||||
@@ -69,13 +119,8 @@ public extension ALTAppPermission
|
||||
public struct UnknownAppPermission: ALTAppPermission
|
||||
{
|
||||
public var type: ALTAppPermissionType { .unknown }
|
||||
public var symbolName: String? { nil }
|
||||
|
||||
public var localizedName: String? { nil }
|
||||
public var synthesizedName: String? { nil }
|
||||
|
||||
public var localizedDescription: String? { nil }
|
||||
|
||||
public var rawValue: String
|
||||
|
||||
public init(rawValue: String)
|
||||
@@ -87,9 +132,6 @@ public struct UnknownAppPermission: ALTAppPermission
|
||||
extension ALTEntitlement: ALTAppPermission
|
||||
{
|
||||
public var type: ALTAppPermissionType { .entitlement }
|
||||
public var symbolName: String? { nil }
|
||||
|
||||
public var localizedName: String? { nil }
|
||||
|
||||
public var synthesizedName: String? {
|
||||
// Attempt to convert last component of entitlement to human-readable string.
|
||||
@@ -108,8 +150,6 @@ extension ALTEntitlement: ALTAppPermission
|
||||
let synthesizedName = words.joined(separator: " ")
|
||||
return synthesizedName
|
||||
}
|
||||
|
||||
public var localizedDescription: String? { nil }
|
||||
}
|
||||
|
||||
extension ALTAppPrivacyPermission: ALTAppPermission
|
||||
|
||||
845
AltStoreCore/Resources/Permissions.plist
Normal file
845
AltStoreCore/Resources/Permissions.plist
Normal file
@@ -0,0 +1,845 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>entitlements</key>
|
||||
<dict>
|
||||
<key>autofill credential provider</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>AutoFill Credential Provider</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to provide user names and passwords for AutoFill</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.authentication-services.autofill-credential-provider</string>
|
||||
<key>symbol</key>
|
||||
<string>wallet.pass</string>
|
||||
</dict>
|
||||
<key>applesignin</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Sign in with Apple</string>
|
||||
<key>description</key>
|
||||
<string>Allows sign in with Apple.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.applesignin</string>
|
||||
<key>symbol</key>
|
||||
<string>apple.logo</string>
|
||||
</dict>
|
||||
<key>parent-application-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Parent Application Identifiers</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use App Clips</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.parent-application-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>appclip</string>
|
||||
</dict>
|
||||
<key>associated-appclip-app-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Associated App Clip Identifiers</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use App Clips with other apps.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.associated-appclip-app-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>appclip</string>
|
||||
</dict>
|
||||
<key>on-demand-install-capable</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>On-Demand Install Capable</string>
|
||||
<key>description</key>
|
||||
<string>App can install App Clips</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.on-demand-install-capable</string>
|
||||
<key>symbol</key>
|
||||
<string>appclip</string>
|
||||
</dict>
|
||||
<key>carplay-audio</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Audio</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to provide audio content for CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-audio</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-charging</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Charging</string>
|
||||
<key>description</key>
|
||||
<string>Allows charging capabilities for CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-charging</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-communication</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Communication</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to make and receive phone calls, messages, and other communications through CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-communication</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-maps</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Maps</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to provide maps and navigation services for CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-maps</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-parking</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Parking</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to provide parking-related services for CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-parking</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-quick-ordering</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Quick Ordering</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to provide quick ordering capabilities for CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-quick-ordering</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>carplay-messaging</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CarPlay Messaging</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to send and receive messages through CarPlay.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.carplay-messaging</string>
|
||||
<key>symbol</key>
|
||||
<string>car</string>
|
||||
</dict>
|
||||
<key>automated-device-enrollment.add-devices</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Automated Device Enrollment</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to add a device to Automated Device Enrollment.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.automated-device-enrollment.add-devices</string>
|
||||
<key>symbol</key>
|
||||
<string>macbook.and.iphone</string>
|
||||
</dict>
|
||||
<key>ClassKit-environment</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ClassKit</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to the ClassKit development or production environment for an education app that works with the Schoolwork app.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.ClassKit-environment</string>
|
||||
<key>symbol</key>
|
||||
<string>books.vertical</string>
|
||||
</dict>
|
||||
<key>automatic-assessment-configuration</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Automatic Assessment Configuration</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to create an assessment session.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.automatic-assessment-configuration</string>
|
||||
<key>symbol</key>
|
||||
<string>books.vertical</string>
|
||||
</dict>
|
||||
<key>mail-client</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Mail Client</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to act as a user's default email client.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.mail-client</string>
|
||||
<key>symbol</key>
|
||||
<string>envelope</string>
|
||||
</dict>
|
||||
<key>exposure-notification</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exposure Notification</string>
|
||||
<key>description</key>
|
||||
<string>App may use exposure notification.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.exposure-notification</string>
|
||||
<key>symbol</key>
|
||||
<string>microbe.fill</string>
|
||||
</dict>
|
||||
<key>family-controls</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Family Controls</string>
|
||||
<key>description</key>
|
||||
<string>App can request or revoke authorization to provide parental controls.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.family-controls</string>
|
||||
<key>symbol</key>
|
||||
<string>figure.and.child.holdinghands</string>
|
||||
</dict>
|
||||
<key>fileprovider.testing-mode</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Testing Mode</string>
|
||||
<key>description</key>
|
||||
<string>App can enter testing mode.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.fileprovider.testing-mode</string>
|
||||
<key>symbol</key>
|
||||
<string>testtube.2</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.game-center</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Game Center</string>
|
||||
<key>description</key>
|
||||
<string>App may see and compare achievements on a leaderboard, invite friends, and start multiplayer games.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.game-center</string>
|
||||
<key>symbol</key>
|
||||
<string>gamecontroller</string>
|
||||
</dict>
|
||||
<key>group-session</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Group Activities</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to schedule and participate in group activities.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.group-session</string>
|
||||
<key>symbol</key>
|
||||
<string>person.3</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.healthkit</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Health</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to access your Health data.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.healthkit</string>
|
||||
<key>symbol</key>
|
||||
<string>heart.text.square</string>
|
||||
</dict>
|
||||
<key>healthkit.background-delivery</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Health - Background Updates</string>
|
||||
<key>description</key>
|
||||
<string>App may receive health updates while running in the background.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.healthkit.background-delivery</string>
|
||||
<key>symbol</key>
|
||||
<string>heart.text.square</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.healthkit.recalibrate-estimates</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Health - Recalibrate</string>
|
||||
<key>description</key>
|
||||
<string>App may recalibrate Health data.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.healthkit.recalibrate-estimates</string>
|
||||
<key>symbol</key>
|
||||
<string>heart.text.square</string>
|
||||
</dict>
|
||||
<key>homekit</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HomeKit - Matter</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to provide the setup of a Matter device.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.homekit</string>
|
||||
<key>symbol</key>
|
||||
<string>house</string>
|
||||
</dict>
|
||||
<key>com.apple.security.hypervisor</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Hypervisor</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to create and manage virtual machines.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.security.hypervisor</string>
|
||||
<key>symbol</key>
|
||||
<string>externaldrive.connected.to.line.below</string>
|
||||
</dict>
|
||||
<key>com.apple.vm.device-access</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Device Access</string>
|
||||
<key>description</key>
|
||||
<string>App can capture USB devices and uses them in the guest-operating system.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.vm.device-access</string>
|
||||
<key>symbol</key>
|
||||
<string>mediastick</string>
|
||||
</dict>
|
||||
<key>com.apple.vm.networking</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Networking</string>
|
||||
<key>description</key>
|
||||
<string>App can manage virtual network interfaces without escalating privileges to the root user.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.vm.networking</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.security.virtualization</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Virtualization</string>
|
||||
<key>description</key>
|
||||
<string>App can use the Virtualization framework.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.security.virtualization</string>
|
||||
<key>symbol</key>
|
||||
<string>server.rack</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.icloud-container-development-container-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>iCloud Container Development Container Identifiers</string>
|
||||
<key>description</key>
|
||||
<string>App can use iCloud containers for testing environments.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.icloud-container-development-container-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>icloud</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.icloud-container-environment</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>iCloud Container Environment</string>
|
||||
<key>description</key>
|
||||
<string>App can set up iCloud testing environment.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.icloud-container-environment</string>
|
||||
<key>symbol</key>
|
||||
<string>icloud</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.icloud-container-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>iCloud Container Identifiers</string>
|
||||
<key>description</key>
|
||||
<string>App can set up iCloud identifiers used for testing environments.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.icloud-container-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>icloud</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.icloud-services</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>iCloud Services Entitlement</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to iCloud services.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.icloud-services</string>
|
||||
<key>symbol</key>
|
||||
<string>icloud</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>iCloud Key-Value Store Entitlement</string>
|
||||
<key>description</key>
|
||||
<string>The container identifier to use for iCloud key-value storage.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.ubiquity-kvstore-identifier</string>
|
||||
<key>symbol</key>
|
||||
<string>icloud</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.location.push</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Location Sharing Push Notifications</string>
|
||||
<key>description</key>
|
||||
<string>Enables location-sharing app to query someone’s location in response to a push notification.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.location.push</string>
|
||||
<key>symbol</key>
|
||||
<string>location</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.media-device-discovery-extension</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Media Device Discovery Extension</string>
|
||||
<key>description</key>
|
||||
<string>App extension that adds a third-party media receiver to a system device-picker UI.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.media-device-discovery-extension</string>
|
||||
<key>symbol</key>
|
||||
<string>display.2</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.avfoundation.multitasking-camera-access</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Multitasking Camera Access</string>
|
||||
<key>description</key>
|
||||
<string>App may continue using the camera at the same time as another foreground app.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.avfoundation.multitasking-camera-access</string>
|
||||
<key>symbol</key>
|
||||
<string>camera.on.rectangle</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.kernel.increased-memory-limit</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Increased Memory Limit</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to perform better with a higher memory limit on supported devices.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.kernel.increased-memory-limit</string>
|
||||
<key>symbol</key>
|
||||
<string>memorychip</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.kernel.extended-virtual-addressing</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Extended Virtual Addressing</string>
|
||||
<key>description</key>
|
||||
<string>App may access an extended address space.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.kernel.extended-virtual-addressing</string>
|
||||
<key>symbol</key>
|
||||
<string>memorychip</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.networkextension</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Network Extensions</string>
|
||||
<key>description</key>
|
||||
<string>App can customize networking features.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.networkextension</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.vpn.api</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Personal VPN</string>
|
||||
<key>description</key>
|
||||
<string>App can create and control a custom system VPN configuration.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.vpn.api</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.associated-domains</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Associated Domains</string>
|
||||
<key>description</key>
|
||||
<string>The associated domains for specific services, such as shared web credentials, universal links, and App Clips.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.associated-domains</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.multicast</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Multicast</string>
|
||||
<key>description</key>
|
||||
<string>App can send or receive IP multicast traffic.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.multicast</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.associated-domains.applinks.read-write</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Applinks</string>
|
||||
<key>description</key>
|
||||
<string>Grants app read/write access to Applinks</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.associated-domains.applinks.read-write</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.manage-thread-network-credentials</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ThreadNetwork</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to the ThreadNetwork API.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.manage-thread-network-credentials</string>
|
||||
<key>symbol</key>
|
||||
<string>network</string>
|
||||
</dict>
|
||||
<key>aps-environment</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Push Notifications</string>
|
||||
<key>description</key>
|
||||
<string>App can send push notifications.</string>
|
||||
<key>key</key>
|
||||
<string>aps-environment</string>
|
||||
<key>symbol</key>
|
||||
<string>platter.filled.top.and.arrow.up.iphone</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.usernotifications.filtering</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Notification Filtering</string>
|
||||
<key>description</key>
|
||||
<string>App can receive notifications without displaying them to the user.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.usernotifications.filtering</string>
|
||||
<key>symbol</key>
|
||||
<string>platter.filled.top.and.arrow.up.iphone</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.device-information.user-assigned-device-name</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Device Name</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to the user-assigned device name instead of a generic device name.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.device-information.user-assigned-device-name</string>
|
||||
<key>symbol</key>
|
||||
<string>ipad.and.iphone</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.severe-vehicular-crash-event</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Crash Detection</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to Crash Detection events.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.severe-vehicular-crash-event</string>
|
||||
<key>symbol</key>
|
||||
<string>car.side.and.exclamationmark</string>
|
||||
</dict>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>App Groups</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to share files with other apps and app extensions in same App Group.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.security.application-groups</string>
|
||||
<key>symbol</key>
|
||||
<string>rectangle.3.group</string>
|
||||
</dict>
|
||||
<key>keychain-access-groups</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keychain</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to read and write secure data to the system's keychain.</string>
|
||||
<key>key</key>
|
||||
<string>keychain-access-groups</string>
|
||||
<key>symbol</key>
|
||||
<string>key.horizontal</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.default-data-protection</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Data Protection</string>
|
||||
<key>description</key>
|
||||
<string>App can set the level of data protection for sensitive user data when accessed on a device.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.default-data-protection</string>
|
||||
<key>symbol</key>
|
||||
<string>lock.doc</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.devicecheck.appattest-environment</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>App Attest Environment</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use the App Attest service to validate itself.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.devicecheck.appattest-environment</string>
|
||||
<key>symbol</key>
|
||||
<string>app.badge.checkmark</string>
|
||||
</dict>
|
||||
<key>com.apple.security.smartcard</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Smart Card Access</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to smart card slots and smart cards.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.security.smartcard</string>
|
||||
<key>symbol</key>
|
||||
<string>greetingcard</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.sensorkit.reader.allow</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Sensor Data</string>
|
||||
<key>description</key>
|
||||
<string>Grants access to sensor data that's required by your app's preapproved research study.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.sensorkit.reader.allow</string>
|
||||
<key>symbol</key>
|
||||
<string>sensor</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.siri</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Siri</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to handle Siri requests.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.siri</string>
|
||||
<key>symbol</key>
|
||||
<string>mic</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.storekit.external-link.account</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>External Website Account Linking</string>
|
||||
<key>description</key>
|
||||
<string>App can link to an external website for account creation or management.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.storekit.external-link.account</string>
|
||||
<key>symbol</key>
|
||||
<string>link.badge.plus</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.storekit.external-purchase</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>External Purchases</string>
|
||||
<key>description</key>
|
||||
<string>App can offer external purchases.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.storekit.external-purchase</string>
|
||||
<key>symbol</key>
|
||||
<string>dollarsign.circle</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.storekit.external-purchase-link</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>External Purchase Website Link</string>
|
||||
<key>description</key>
|
||||
<string>App can include a link that directs users to a website to make an external purchase.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.storekit.external-purchase-link</string>
|
||||
<key>symbol</key>
|
||||
<string>link.badge.plus</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.video-subscriber-single-sign-on</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Subscriber Single Sign-On</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use single sign on</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.video-subscriber-single-sign-on</string>
|
||||
<key>symbol</key>
|
||||
<string>rectangle.and.pencil.and.ellipsis</string>
|
||||
</dict>
|
||||
<key>com.apple.smoot.subscriptionservice</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Subscription</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to check for subscription</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.smoot.subscriptionservice</string>
|
||||
<key>symbol</key>
|
||||
<string>person.crop.circle.badge.checkmark</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.pass-type-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Pass Type</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to check for passes in Apple Wallet</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.pass-type-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>wallet.pass</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.in-app-payments</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>In-App Payments</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use Apple Pay</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.in-app-payments</string>
|
||||
<key>symbol</key>
|
||||
<string>dollarsign.circle</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.in-app-identity-presentment</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>In-App Identity Presentment</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to verify user for Apple Pay</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.in-app-identity-presentment</string>
|
||||
<key>symbol</key>
|
||||
<string>dollarsign.circle</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.in-app-identity-presentment.merchant-identifiers</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>In-App Identity Presentment (Merchant Identifiers)</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to verify merchant for Apple Pay</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.in-app-identity-presentment.merchant-identifiers</string>
|
||||
<key>symbol</key>
|
||||
<string>dollarsign.circle</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.weatherkit</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Weather Data</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to use WeatherKit</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.weatherkit</string>
|
||||
<key>symbol</key>
|
||||
<string>cloud.sun</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.web-browser</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Default Web Browser</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to be used as the user's default web browser.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.web-browser</string>
|
||||
<key>symbol</key>
|
||||
<string>globe.europe.africa</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.web-browser.public-key-credential</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Public Key Credential</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to access passkeys</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.web-browser.public-key-credential</string>
|
||||
<key>symbol</key>
|
||||
<string>key.viewfinder</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.wifi-info</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Wi-Fi Information Access</string>
|
||||
<key>description</key>
|
||||
<string>Allows app to access information about the connected Wi-Fi network.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.wifi-info</string>
|
||||
<key>symbol</key>
|
||||
<string>wifi</string>
|
||||
</dict>
|
||||
<key>com.apple.external-accessory.wireless-configuration</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Wireless Accessory Configuration</string>
|
||||
<key>description</key>
|
||||
<string>App may configure MFi Wi-Fi accessories.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.external-accessory.wireless-configuration</string>
|
||||
<key>symbol</key>
|
||||
<string>wifi</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.multipath</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Multipath Support</string>
|
||||
<key>description</key>
|
||||
<string>App may use Multipath protocols to seamlessly transition between Wi-Fi and cellular networks.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.multipath</string>
|
||||
<key>symbol</key>
|
||||
<string>antenna.radiowaves.left.and.right</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.networking.HotspotConfiguration</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Hotspot Configuration</string>
|
||||
<key>description</key>
|
||||
<string>App can use the hotspot manager to configure Wi-Fi networks.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.networking.HotspotConfiguration</string>
|
||||
<key>symbol</key>
|
||||
<string>personalhotspot</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.nfc.readersession.formats</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>NFC Tag Reader Session Formats</string>
|
||||
<key>description</key>
|
||||
<string>The Near Field Communication data formats an app can read.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.nfc.readersession.formats</string>
|
||||
<key>symbol</key>
|
||||
<string>iphone.gen1.radiowaves.left.and.right.circle</string>
|
||||
</dict>
|
||||
<key>get-task-allow</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Debuggable</string>
|
||||
<key>description</key>
|
||||
<string>Allows developers to attach a debugger to this app. This permission is required for JIT to work.</string>
|
||||
<key>key</key>
|
||||
<string>get-task-allow</string>
|
||||
<key>symbol</key>
|
||||
<string>hammer</string>
|
||||
</dict>
|
||||
<key>inter-app-audio</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inter-App Audio</string>
|
||||
<key>description</key>
|
||||
<string>Allows sharing real-time audio between apps.</string>
|
||||
<key>key</key>
|
||||
<string>inter-app-audio</string>
|
||||
<key>symbol</key>
|
||||
<string>hifispeaker.2</string>
|
||||
</dict>
|
||||
<key>com.apple.developer.healthkit.access</key>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Sensitive Health Data</string>
|
||||
<key>description</key>
|
||||
<string>Allows the app to access your sensitive Health data.</string>
|
||||
<key>key</key>
|
||||
<string>com.apple.developer.healthkit.access</string>
|
||||
<key>symbol</key>
|
||||
<string>heart.text.square</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user