Di iOS10, Sebelum Anda mengakses data sensitif privasi seperti Kamera, Kontak, dan sebagainya, Anda harus meminta otorisasi, atau aplikasi Anda akan mogok saat Anda mengaksesnya, lalu Xcode akan masuk seperti:
Aplikasi ini ngadat karena berusaha mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi NSContactsUsageDescription
kunci dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Bagaimana cara mengatasinya?
Buka file dalam proyek Anda bernama info.plist
, klik kanan, buka sebagai Source Code
, tempel kode di bawah ini. Atau Anda dapat membuka info.plist
sebagai Property List
default, klik tombol add, Xcode akan memberikan menyarankan penyelesaian sementara mengetik Privacy -
dengan bantuan keyboard ⬆️ dan ⬇️.
Ingatlah untuk menulis deskripsi Anda mengapa Anda meminta otorisasi ini, antara <string>
dan </string>
, atau aplikasi Anda akan ditolak oleh 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>
Jika tidak berhasil, coba minta background authorization:
<key>UIBackgroundModes</key>
<array>
<!-- something you should use in background -->
<string>location</string>
</array>
Atau buka target -> Capabilities -> Background Modes -> open the background Modes
:
lalu bersihkan Proyek Anda, jalankan.
Buka di sini untuk informasi lebih lanjut: iOS10AdaptationTips .