开发过程中,难免会涉及到访问相册、相机、麦克风、通讯录等需要进行隐私权限授权的功能。
系统默认的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 |