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:
@@ -351,6 +351,7 @@
|
|||||||
D52EF2BE2A0594550096C377 /* AppDetailCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D52EF2BD2A0594550096C377 /* AppDetailCollectionViewController.swift */; };
|
D52EF2BE2A0594550096C377 /* AppDetailCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D52EF2BD2A0594550096C377 /* AppDetailCollectionViewController.swift */; };
|
||||||
D533E8B72727841800A9B5DD /* libAppleArchive.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D533E8B62727841800A9B5DD /* libAppleArchive.tbd */; settings = {ATTRIBUTES = (Weak, ); }; };
|
D533E8B72727841800A9B5DD /* libAppleArchive.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D533E8B62727841800A9B5DD /* libAppleArchive.tbd */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||||
D533E8BE2727BBF800A9B5DD /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D533E8BD2727BBF800A9B5DD /* libcurl.a */; };
|
D533E8BE2727BBF800A9B5DD /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D533E8BD2727BBF800A9B5DD /* libcurl.a */; };
|
||||||
|
D53D84022A2158FC00543C3B /* Permissions.plist in Resources */ = {isa = PBXBuildFile; fileRef = D53D84012A2158FC00543C3B /* Permissions.plist */; };
|
||||||
D54058B92A1D6269008CCC58 /* AppPermissionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54058B82A1D6269008CCC58 /* AppPermissionProtocol.swift */; };
|
D54058B92A1D6269008CCC58 /* AppPermissionProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54058B82A1D6269008CCC58 /* AppPermissionProtocol.swift */; };
|
||||||
D54058BB2A1D8FE3008CCC58 /* UIColor+AltStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54058BA2A1D8FE3008CCC58 /* UIColor+AltStore.swift */; };
|
D54058BB2A1D8FE3008CCC58 /* UIColor+AltStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D54058BA2A1D8FE3008CCC58 /* UIColor+AltStore.swift */; };
|
||||||
D540E93828EE1BDE000F1B0F /* ErrorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D540E93728EE1BDE000F1B0F /* ErrorDetailsViewController.swift */; };
|
D540E93828EE1BDE000F1B0F /* ErrorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D540E93728EE1BDE000F1B0F /* ErrorDetailsViewController.swift */; };
|
||||||
@@ -917,6 +918,7 @@
|
|||||||
D533E8B82727B61400A9B5DD /* fragmentzip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fragmentzip.h; sourceTree = "<group>"; };
|
D533E8B82727B61400A9B5DD /* fragmentzip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fragmentzip.h; sourceTree = "<group>"; };
|
||||||
D533E8BB2727BBEE00A9B5DD /* libfragmentzip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfragmentzip.a; path = Dependencies/fragmentzip/libfragmentzip.a; sourceTree = SOURCE_ROOT; };
|
D533E8BB2727BBEE00A9B5DD /* libfragmentzip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfragmentzip.a; path = Dependencies/fragmentzip/libfragmentzip.a; sourceTree = SOURCE_ROOT; };
|
||||||
D533E8BD2727BBF800A9B5DD /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = Dependencies/libcurl/libcurl.a; sourceTree = SOURCE_ROOT; };
|
D533E8BD2727BBF800A9B5DD /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcurl.a; path = Dependencies/libcurl/libcurl.a; sourceTree = SOURCE_ROOT; };
|
||||||
|
D53D84012A2158FC00543C3B /* Permissions.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Permissions.plist; sourceTree = "<group>"; };
|
||||||
D54058B82A1D6269008CCC58 /* AppPermissionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPermissionProtocol.swift; sourceTree = "<group>"; };
|
D54058B82A1D6269008CCC58 /* AppPermissionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPermissionProtocol.swift; sourceTree = "<group>"; };
|
||||||
D54058BA2A1D8FE3008CCC58 /* UIColor+AltStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+AltStore.swift"; sourceTree = "<group>"; };
|
D54058BA2A1D8FE3008CCC58 /* UIColor+AltStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+AltStore.swift"; sourceTree = "<group>"; };
|
||||||
D540E93728EE1BDE000F1B0F /* ErrorDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorDetailsViewController.swift; sourceTree = "<group>"; };
|
D540E93728EE1BDE000F1B0F /* ErrorDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorDetailsViewController.swift; sourceTree = "<group>"; };
|
||||||
@@ -1665,6 +1667,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
BFCB9206250AB2120057B44E /* Colors.xcassets */,
|
BFCB9206250AB2120057B44E /* Colors.xcassets */,
|
||||||
|
D53D84012A2158FC00543C3B /* Permissions.plist */,
|
||||||
);
|
);
|
||||||
path = Resources;
|
path = Resources;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -2402,6 +2405,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
BFCB9207250AB2120057B44E /* Colors.xcassets in Resources */,
|
BFCB9207250AB2120057B44E /* Colors.xcassets in Resources */,
|
||||||
|
D53D84022A2158FC00543C3B /* Permissions.plist in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
import AltSign
|
import AltSign
|
||||||
|
|
||||||
public extension ALTAppPermissionType
|
extension ALTAppPermissionType
|
||||||
{
|
{
|
||||||
var localizedName: String? {
|
public var localizedName: String? {
|
||||||
switch self
|
switch self
|
||||||
{
|
{
|
||||||
case .unknown: return NSLocalizedString("Permission", comment: "")
|
case .unknown: return NSLocalizedString("Permission", comment: "")
|
||||||
@@ -19,25 +19,78 @@ public extension ALTAppPermissionType
|
|||||||
default: return nil
|
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
|
public protocol ALTAppPermission: RawRepresentable<String>, Hashable
|
||||||
{
|
{
|
||||||
var type: ALTAppPermissionType { get }
|
var type: ALTAppPermissionType { get }
|
||||||
var symbolName: String? { get }
|
|
||||||
|
|
||||||
var localizedName: String? { get }
|
|
||||||
var synthesizedName: String? { get } // Kupo!
|
var synthesizedName: String? { get } // Kupo!
|
||||||
|
|
||||||
|
// Default implementations
|
||||||
|
var localizedName: String? { get }
|
||||||
var localizedDescription: 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 ¯\_(ツ)_/¯
|
// Would normally just be in extension, except that crashes Swift 5.8 compiler ¯\_(ツ)_/¯
|
||||||
var isKnown: Bool { get }
|
var isKnown: Bool { get }
|
||||||
var effectiveSymbolName: String { get }
|
var effectiveSymbolName: String { get }
|
||||||
var localizedDisplayName: 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
|
public extension ALTAppPermission
|
||||||
{
|
{
|
||||||
var isKnown: Bool {
|
var isKnown: Bool {
|
||||||
@@ -50,10 +103,7 @@ public extension ALTAppPermission
|
|||||||
var localizedDisplayName: String {
|
var localizedDisplayName: String {
|
||||||
return self.localizedName ?? self.synthesizedName ?? self.rawValue
|
return self.localizedName ?? self.synthesizedName ?? self.rawValue
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public extension ALTAppPermission
|
|
||||||
{
|
|
||||||
func isEqual(_ permission: any ALTAppPermission) -> Bool
|
func isEqual(_ permission: any ALTAppPermission) -> Bool
|
||||||
{
|
{
|
||||||
guard let permission = permission as? Self else { return false }
|
guard let permission = permission as? Self else { return false }
|
||||||
@@ -69,13 +119,8 @@ public extension ALTAppPermission
|
|||||||
public struct UnknownAppPermission: ALTAppPermission
|
public struct UnknownAppPermission: ALTAppPermission
|
||||||
{
|
{
|
||||||
public var type: ALTAppPermissionType { .unknown }
|
public var type: ALTAppPermissionType { .unknown }
|
||||||
public var symbolName: String? { nil }
|
|
||||||
|
|
||||||
public var localizedName: String? { nil }
|
|
||||||
public var synthesizedName: String? { nil }
|
public var synthesizedName: String? { nil }
|
||||||
|
|
||||||
public var localizedDescription: String? { nil }
|
|
||||||
|
|
||||||
public var rawValue: String
|
public var rawValue: String
|
||||||
|
|
||||||
public init(rawValue: String)
|
public init(rawValue: String)
|
||||||
@@ -87,9 +132,6 @@ public struct UnknownAppPermission: ALTAppPermission
|
|||||||
extension ALTEntitlement: ALTAppPermission
|
extension ALTEntitlement: ALTAppPermission
|
||||||
{
|
{
|
||||||
public var type: ALTAppPermissionType { .entitlement }
|
public var type: ALTAppPermissionType { .entitlement }
|
||||||
public var symbolName: String? { nil }
|
|
||||||
|
|
||||||
public var localizedName: String? { nil }
|
|
||||||
|
|
||||||
public var synthesizedName: String? {
|
public var synthesizedName: String? {
|
||||||
// Attempt to convert last component of entitlement to human-readable string.
|
// Attempt to convert last component of entitlement to human-readable string.
|
||||||
@@ -108,8 +150,6 @@ extension ALTEntitlement: ALTAppPermission
|
|||||||
let synthesizedName = words.joined(separator: " ")
|
let synthesizedName = words.joined(separator: " ")
|
||||||
return synthesizedName
|
return synthesizedName
|
||||||
}
|
}
|
||||||
|
|
||||||
public var localizedDescription: String? { nil }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension ALTAppPrivacyPermission: ALTAppPermission
|
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