En iOS10, antes de acceder a datos sensibles a la privacidad como la cámara, los contactos, etc., debe solicitar la autorización o su aplicación se bloqueará cuando acceda a ellos. Luego, Xcode se registrará como:
Esta aplicación se bloqueó porque intentó acceder a datos sensibles a la privacidad sin una descripción de uso. El Info.plist de la aplicación debe contener unNSContactsUsageDescription
clave con un valor de cadena que explique al usuario cómo la aplicación utiliza estos datos.
Como lidiar con esto?
Abra el archivo en su proyecto llamado info.plist
, haga clic derecho en él, abriendo como Source Code
, pegue este código a continuación. O puede abrir info.plist
como Property List
predeterminado, haga clic en el botón Agregar, Xcode le dará las sugerencias de finalización mientras escribe Privacy -
con la ayuda del teclado ⬆️ y ⬇️.
Recuerde escribir su descripción por qué solicita esta autorización, entre <string>
y </string>
, o su aplicación será rechazada por Apple:
<!-- 🖼 Photo Library -->
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photo use</string>
<!-- 📷 Camera -->
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) camera use</string>
<!-- 🖼 Write To Image Gallery>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) save phots in gallry</string>
<!-- 🎤 Microphone -->
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) microphone use</string>
<!-- 📍 Location -->
<key>NSLocationUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<!-- 📍 Location When In Use -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<!-- 📍 Location Always -->
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) always uses location </string>
<!-- 📆 Calendars -->
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<!-- ⏰ Reminders -->
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<!-- 📒 Contacts -->
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<!-- 🏊 Motion -->
<key>NSMotionUsageDescription</key>
<string>$(PRODUCT_NAME) motion use</string>
<!-- 💊 Health Update -->
<key>NSHealthUpdateUsageDescription</key>
<string>$(PRODUCT_NAME) heath update use</string>
<!-- 💊 Health Share -->
<key>NSHealthShareUsageDescription</key>
<string>$(PRODUCT_NAME) heath share use</string>
<!-- ᛒ🔵 Bluetooth Peripheral -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>$(PRODUCT_NAME) Bluetooth Peripheral use</string>
<!-- 🎵 Media Library -->
<key>NSAppleMusicUsageDescription</key>
<string>$(PRODUCT_NAME) media library use</string>
<!-- 📱 Siri -->
<key>NSSiriUsageDescription</key>
<string>$(PRODUCT_NAME) siri use</string>
<!-- 🏡 HomeKit -->
<key>NSHomeKitUsageDescription</key>
<string>$(PRODUCT_NAME) home kit use</string>
<!-- 📻 SpeechRecognition -->
<key>NSSpeechRecognitionUsageDescription</key>
<string>$(PRODUCT_NAME) speech use</string>
<!-- 📺 VideoSubscriber -->
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>$(PRODUCT_NAME) tvProvider use</string>
Si no funciona, intente solicitar la autorización de antecedentes:
<key>UIBackgroundModes</key>
<array>
<!-- something you should use in background -->
<string>location</string>
</array>
O vaya a target -> Capabilities -> Background Modes -> open the background Modes
:
luego limpia tu proyecto, ejecútalo.
Vaya aquí para obtener más información: iOS10AdaptationTips .