Trong iOS10, Trước khi bạn truy cập vào dữ liệu nhạy cảm về quyền riêng tư như Máy ảnh, Danh bạ, v.v., bạn phải yêu cầu cấp quyền, nếu không ứng dụng của bạn sẽ gặp sự cố khi bạn truy cập chúng. Khi đó Xcode sẽ ghi lại như sau:
Ứng dụng này đã gặp sự cố vì cố gắng truy cập dữ liệu nhạy cảm về quyền riêng tư mà không có mô tả sử dụng. Info.plist của ứng dụng phải chứa một NSContactsUsageDescription
khóa có giá trị chuỗi giải thích cho người dùng cách ứng dụng sử dụng dữ liệu này.
Làm thế nào để đối phó với điều này?
Mở tệp trong dự án của bạn có tên info.plist
, nhấp chuột phải vào nó, mở dưới dạng Source Code
, dán mã này bên dưới vào nó. Hoặc bạn có thể mở info.plist
như Property List
theo mặc định, nhấp vào nút thêm, Xcode sẽ cung cấp cho bạn những gợi ý hoàn trong khi đánh máy Privacy -
với sự giúp đỡ của bàn phím ⬆️ và ⬇️.
Hãy nhớ viết mô tả lý do bạn yêu cầu ủy quyền này, giữa <string>
và </string>
, nếu không ứng dụng của bạn sẽ bị apple từ chối:
<!-- 🖼 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>
Nếu nó không hoạt động, hãy thử yêu cầu ủy quyền nền:
<key>UIBackgroundModes</key>
<array>
<!-- something you should use in background -->
<string>location</string>
</array>
Hoặc truy cập target -> Capabilities -> Background Modes -> open the background Modes
:
sau đó làm sạch Dự án của bạn, chạy nó.
Truy cập vào đây để biết thêm thông tin: iOS10AdaptationTips .