开发过程中,难免会涉及到访问相册、相机、麦克风、通讯录等需要进行隐私权限授权的功能。
系统默认的alert比较生硬,像下图这样:
其实我们是可以向其中加入自定义的文案的。
加入之后看上去会更友好,像下图这样:
方法很简单,只需要向info.plist里加一行键值就行了。
例如修改通讯录权限的,Key为NSContactsUsageDescription(或 Privacy - Contacts Usage Description),Value写入你想要添加的文案就可以了。
附上官方文档地址,其它权限的键可以在里面找。
https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
Key | Xcode name | Summary | Platforms |
---|---|---|---|
GKGameCenterBadgingDisabled | (none) | Specifies whether your app is badged. See GKGameCenterBadgingDisabled for details. | iOS 7.0 and later |
GKShowChallengeBanners | (none) | Specifies whether banners are shown within an app. See GKShowChallengeBannersfor details. | iOS 7.0 and later |
NSAppleScriptEnabled | “Scriptable” | Specifies whether AppleScript is enabled. See NSAppleScriptEnabled for details. | OS X |
NSAppTransportSecurity | (none) | Specifies exceptions to the default strong Internet security in iOS and OS X apps and in app extensions. SeeNSAppTransportSecurity for details. | iOS 9.0 and later, OS X v10.11 and later |
NSBluetoothPeripheralUsageDescription | “Privacy - Bluetooth Peripheral Usage Description” | Specifies the reason for using Bluetooth. See NSBluetoothPeripheralUsageDescription for details. | iOS 6.0 and later |
NSCalendarsUsageDescription | “Privacy - Calendars Usage Description” | Specifies the reason for accessing the user’s calendars. See NSCalendarsUsageDescription for details. | iOS 6.0 and later |
NSCameraUsageDescription | “Privacy - Camera Usage Description” | Specifies the reason for accessing the device’s camera. See NSLocationAlwaysUsageDescription for details. | iOS 7.0 and later |
NSContactsUsageDescription | “Privacy - Contacts Usage Description” | Specifies the reason for accessing the user’s contacts. See NSContactsUsageDescription for details. | iOS 6.0 and later, OS X v10.8 and later |
NSDockTilePlugIn | ”Dock Tile Plugin path” | Specifies the name of app’s Dock tile plug-in, if present. See NSDockTilePlugIn for details. | OS X |
NSHumanReadableCopyright | “Copyright (human-readable)” | (Localizable) Specifies the copyright notice for the bundle. See NSHumanReadableCopyright for details. | OS X |
NSJavaNeeded | “Cocoa Java application” | Specifies whether the program requires a running Java VM. See NSJavaNeeded for details. | OS X |
NSJavaPath | “Java classpaths” | An array of paths to classes whose components are preceded by | OS X |
NSJavaRoot | “Java root directory” | The root directory containing the java classes. See NSJavaRoot for details. | OS X |
NSLocationAlwaysUsageDescription | (none) | Specifies the reason for accessing the user’s location information. See NSLocationAlwaysUsageDescription for details. | iOS 8.0 and later, OS X v10.10 and later |
NSLocationUsageDescription | “Privacy - Location Usage Description” | Specifies the reason for accessing the user’s location information. See NSLocationUsageDescription for details. | iOS 6.0 and later, OS X v10.9 and later |
NSLocationWhenInUseUsageDescription | (none) | Specifies the reason for accessing the user’s location information. See NSLocationWhenInUseUsageDescription for details. | iOS 8.0 and later, OS X v10.10 and later |
NSMainNibFile | “Main nib file base name” | The name of an app’s main nib file. SeeNSMainNibFile for details. | iOS, OS X |
NSMicrophoneUsageDescription | “Privacy - Microphone Usage Description” | Specifies the reason for accessing the device’s microphone. See NSCalendarsUsageDescription for details. | iOS 7.0 and later |
NSMotionUsageDescription | “Privacy - Motion Usage Description” | Specifies the reason for accessing the device’s accelerometer. See NSMotionUsageDescription for details. | iOS 7.0 and later |
NSPersistentStoreTypeKey | “Core Data persistent store type” | The type of Core Data persistent store associated with a persistent document type. SeeNSPersistentStoreTypeKey for details. | OS X |
NSPhotoLibraryUsageDescription | “Privacy - Photo Library Usage Description” | Specifies the reason for accessing the user’s photo library. See NSPhotoLibraryUsageDescription for details. | iOS 6.0 and later |
NSPrefPaneIconFile | “Preference Pane icon file” | The name of an image file resource used to represent a preference pane in the System Preferences app. SeeNSPrefPaneIconFile for details. | OS X |
NSPrefPaneIconLabel | “Preference Pane icon label” | The name of a preference pane displayed beneath the preference pane icon in the System Preferences app. SeeNSPrefPaneIconLabel for details. | OS X |
NSPrincipalClass | “Principal class” | The name of the bundle’s main class. See NSPrincipalClass for details. | OS X |
NSRemindersUsageDescription | “Privacy - Reminders Usage Description” | Specifies the reason for accessing the user’s reminders. See NSRemindersUsageDescription for details. | iOS 6.0 and later |
NSServices | “Services” | An array of dictionaries specifying the services provided by an app. See NSServices for details. | OS X |
NSSupportsAutomaticTermination | (none) | Specifies whether the app may be killed to reclaim memory. See NSSupportsAutomaticTermination for details. | OS X v10.7 and later |
NSSupportsSuddenTermination | (none) | Specifies whether the app may be killed to allow for faster shut down or log out operations. SeeNSSupportsSuddenTermination for details. | OS X |
NSUbiquitousContainer | (none) | Specifies the iCloud Drive settings for each container. See NSUbiquitousContainers for details. | iOS, OS X |
NSUbiquitousContainerIsDocumentScopePublic | (none) | Specifies whether the iCloud Drive should share the contents of this container. SeeNSUbiquitousContainerIsDocumentScopePublic for details. | iOS, OS X |
NSUbiquitousContainerName | (none) | Specifies the name that the iCloud Drive displays for your container. See NSUbiquitousContainerName for details. | iOS, OS X |
NSUbiquitousContainerSupportedFolderLevels | (none) | Specifies the maximum number of folder levels inside your container’s Documents directory. SeeNSUbiquitousContainerSupportedFolderLevels for details. | iOS, OS X |
NSUbiquitousDisplaySet | (none) | Specifies the mobile document data that the app can view. See NSUbiquitousDisplaySet for details. | iOS, OS X |
NSUserActivityTypes | (none) | Specifies the user activity types that the app supports. See NSUserActivityTypes for details. | iOS, OS X |
NSUserNotificationAlertStyle | (none) | Specifies whether the notification style should be | OS X |
UTExportedTypeDeclarations | “Exported Type UTIs” | An array of dictionaries specifying the UTI-based types supported (and owned) by the app. SeeUTExportedTypeDeclarations for details. | iOS 5.0 and later, OS X v10.7 and later |
UTImportedTypeDeclarations | “Imported Type UTIs” | An array of dictionaries specifying the UTI-based types supported (but not owned) by the app. SeeUTImportedTypeDeclarations for details. | iOS, OS X |