App rejected due to missing usage descriptions (Xcode8)

。_饼干妹妹 提交于 2019-11-26 14:19:26

The descriptions are mandatory for any content you or any frameworks you link against attempt to access. The errors are generated upon an attempt to access the content if a usage description was not supplied, so if you're getting those errors your app must be requesting them. You should discover why your app or its frameworks require these and add appropriate usage descriptions to your app's info.plist.

Or more ideally, if you don't need access, see if there's a way to not request it (or use frameworks that do unnecessarily).

iOS 10 must add permission in info.plist just review this BLOG :- settings-in-ios-10 you get all idea.

Add permission in info.plist file base on your error log.

Note: Write proper reason for permission in string value otherwise apple reject app again.

NSCameraUsageDescription

<key>NSCameraUsageDescription</key>
    <string>$(PRODUCT_NAME) camera use.</string>

NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
    <string>$(PRODUCT_NAME) contacts use.</string>

NSPhotoLibraryUsageDescription

<key>NSPhotoLibraryUsageDescription</key>
    <string>$(PRODUCT_NAME) photos and video use.</string>

NSBluetoothPeripheralUsageDescription

<key>NSBluetoothPeripheralUsageDescription</key>
    <string>$(PRODUCT_NAME) bluetooth use.</string>

NSMicrophoneUsageDescription

<key>NSMicrophoneUsageDescription</key>
    <string>$(PRODUCT_NAME) microphone use.</string>

NSMotionUsageDescription

<key>NSMotionUsageDescription</key>
    <string>$(PRODUCT_NAME) motion use.</string>

NSLocationAlwaysUsageDescription

<key>NSLocationAlwaysUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationUsageDescription

<key>NSLocationUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSLocationWhenInUseUsageDescription

<key>NSLocationWhenInUseUsageDescription</key>
    <string>$(PRODUCT_NAME) location use.</string>

NSRemindersUsageDescription

<key>NSRemindersUsageDescription</key>
    <string>$(PRODUCT_NAME) reminders use.</string>

NSSiriUsageDescription

<key>NSSiriUsageDescription</key>
    <string>$(PRODUCT_NAME) siri use.</string>

NSVideoSubscriberAccountUsageDescription

<key>NSVideoSubscriberAccountUsageDescription</key>
    <string>$(PRODUCT_NAME) video use.</string>

NSSpeechRecognitionUsageDescription

<key>NSSpeechRecognitionUsageDescription</key>
    <string>$(PRODUCT_NAME) speech recognition use.</string>

NSCalendarsUsageDescription

<key>NSCalendarsUsageDescription</key>
    <string>$(PRODUCT_NAME) user your calendar.</string>

You can add in your info.plist like :

<key>NSCalendarsUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Explain the reasons for accessing...</string>

etc.

Hope will help someone...

I had the same issue, and it appears that if any framework you link against has code that asks this permission (even if your app never requests them), the usage descriptions are necessary. But according to my test, if you don't request them, they won't appear in the permissions list of your app.

Calendar : Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events

Reminder : Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use

Contact : Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use

Photo : Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use

Bluetooth Sharing : Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use

Microphone : Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use

Camera : Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use

Location : Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use

Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use

Heath : Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use

Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use

HomeKit : Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use

Media Library : Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use

Motion : Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use

Speech Recognition : Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use

SiriKit : Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use

TV Provider : Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!