Jadi saya mendapat email ini hari ini yang mengatakan bahwa versi terbaru dari aplikasi saya ditolak oleh iTunes Connect karena beberapa deskripsi penggunaan yang hilang. Tepatnya:
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSContactsUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSCalendarsUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSPhotoLibraryUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSBluetoothPeripheralUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSMicrophoneUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Aplikasi ini mencoba mengakses data sensitif privasi tanpa deskripsi penggunaan. Info.plist aplikasi harus berisi kunci NSMotionUsageDescription dengan nilai string yang menjelaskan kepada pengguna bagaimana aplikasi menggunakan data ini.
Setelah masalah ini diperbaiki, Anda dapat mengirimkan kembali biner yang telah diperbaiki.
Saya menemukan bahwa ini telah menjadi wajib dengan iOS 10, tetapi satu-satunya masalah adalah bahwa aplikasi saya tidak meminta izin untuk mengakses semua ini .. Saya pikir deskripsi tersebut hanya wajib jika Anda benar-benar meminta izin?
Apakah karena salah satu dependensi saya (Cocoapods) mungkin berisi beberapa kode untuk meminta izin ini? Atau apakah deskripsi ini wajib meskipun saya tidak pernah meminta untuk melihat kalender pengguna, kontak, dll?
sumber
PodFile
dan daftar pustaka yang Anda gunakan (jika Anda menggunakan beberapa cocoapod luar)?Jawaban:
Deskripsi wajib untuk konten apa pun yang Anda atau kerangka kerja apa pun yang Anda tautkan untuk mencoba mengakses. Kesalahan dihasilkan saat mencoba mengakses konten jika deskripsi penggunaan tidak diberikan, jadi jika Anda mendapatkan kesalahan tersebut, aplikasi Anda harus memintanya. Anda harus mengetahui mengapa aplikasi Anda atau frameworknya memerlukan ini dan menambahkan deskripsi penggunaan yang sesuai ke info.plist aplikasi Anda.
Atau lebih ideal, jika Anda tidak membutuhkan akses, lihat apakah ada cara untuk tidak memintanya (atau gunakan kerangka kerja yang tidak perlu).
sumber
iOS 10 harus menambahkan izin di info.plist cukup tinjau BLOG ini : - pengaturan-dalam-ios-10 Anda mendapatkan semua ide.
Tambahkan izin di file info.plist berdasarkan log kesalahan Anda .
NSCameraUsageDescription
<key>NSCameraUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSContactsUsageDescription
<key>NSContactsUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSPhotoLibraryUsageDescription
<key>NSPhotoLibraryUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSBluetoothPeripheralUsageDescription
<key>NSBluetoothPeripheralUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSMicrophoneUsageDescription
<key>NSMicrophoneUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSMotionUsageDescription
<key>NSMotionUsageDescription</key> <string>$(PRODUCT_NAME) motion use.</string>
NSLocationAlwaysUsageDescription
<key>NSLocationAlwaysUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSLocationUsageDescription
<key>NSLocationUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSLocationWhenInUseUsageDescription
<key>NSLocationWhenInUseUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSRemindersUsageDescription
<key>NSRemindersUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSSiriUsageDescription
<key>NSSiriUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSVideoSubscriberAccountUsageDescription
<key>NSVideoSubscriberAccountUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSSpeechRecognitionUsageDescription
<key>NSSpeechRecognitionUsageDescription</key> <string>You have to describe the real usage for a human.</string>
NSCalendarsUsageDescription
<key>NSCalendarsUsageDescription</key> <string>You have to describe the real usage for a human.</string>
sumber
$(PRODUCT_NAME)
. Anda dapat melihat properti default sepertiBundle name
di file plist.Anda dapat menambahkan info.plist Anda seperti:
<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>
dll.
Harapan akan membantu seseorang ...
sumber
Saya mengalami masalah yang sama, dan tampaknya jika ada framework yang Anda tautkan memiliki kode yang meminta izin ini (meskipun aplikasi Anda tidak pernah memintanya), deskripsi penggunaan diperlukan. Namun menurut pengujian saya, jika Anda tidak memintanya, mereka tidak akan muncul di daftar izin aplikasi Anda.
sumber
Kalender: Kunci: Privasi - Kalender Penggunaan Deskripsi
Nilai: acara kalender $ (PRODUCT_NAME)
Pengingat: Kunci: Privasi - Pengingat Deskripsi Penggunaan
Nilai: $ (PRODUCT_NAME) penggunaan pengingat
Kontak : Kunci: Privasi - Kontak Penggunaan Deskripsi
Nilai: $ (PRODUCT_NAME) penggunaan kontak
Foto: Kunci: Privasi - Penggunaan Perpustakaan Foto Deskripsi
Nilai: penggunaan foto $ (PRODUCT_NAME)
Berbagi Bluetooth: Kunci: Privasi - Penggunaan Periferal Bluetooth Deskripsi
Nilai: $ (PRODUCT_NAME) Penggunaan Periferal Bluetooth
Mikrofon: Kunci: Privasi - Penggunaan Mikrofon Deskripsi
Nilai: Penggunaan mikrofon $ (PRODUCT_NAME)
Kamera: Kunci: Privasi - Deskripsi Penggunaan Kamera
Nilai: Penggunaan kamera $ (PRODUCT_NAME)
Lokasi: Kunci: Privasi - Lokasi Selalu Penggunaan Deskripsi
Nilai: $ (PRODUCT_NAME) penggunaan lokasi
Kunci: Privasi - Lokasi Saat Digunakan Deskripsi Penggunaan
Nilai: $ (PRODUCT_NAME) penggunaan lokasi
Heath: Key: Privacy - Health Share Usage Description
Nilai: $ (PRODUCT_NAME) heath share use
Kunci: Privasi - Pembaruan Kesehatan Penggunaan Deskripsi
Nilai: $ (PRODUCT_NAME) penggunaan pembaruan kesehatan
HomeKit: Kunci: Privasi - Penggunaan HomeKit Deskripsi
Nilai: Penggunaan peralatan rumah $ (PRODUCT_NAME)
Perpustakaan Media: Kunci: Privasi - Penggunaan Perpustakaan Media Deskripsi
Nilai: Penggunaan perpustakaan media $ (PRODUCT_NAME)
Gerakan: Kunci: Privasi - Deskripsi Penggunaan Gerakan
Nilai: penggunaan gerakan $ (PRODUCT_NAME)
Pengenalan Ucapan: Kunci: Privasi - Pengenalan Ucapan Deskripsi Penggunaan
Nilai: $ (PRODUCT_NAME) penggunaan ucapan
SiriKit: Kunci: Privasi - Deskripsi Penggunaan Siri
Nilai: $ (PRODUCT_NAME) penggunaan siri
Penyedia TV: Kunci: Privasi - Penyedia TV Deskripsi Penggunaan
Nilai: $ (PRODUCT_NAME) penggunaan tvProvider
sumber
Bagi siapa pun yang bertanya-tanya mengapa tiba-tiba aplikasi Anda sekarang memiliki semua setelan izin ini pada awalnya, bisa jadi karena CocoaPods atau Carthage - mereka menghubungkan semua izin ini. Saya baru saja meningkatkan aplikasi saya untuk menggunakan cordova-plugin-firebasex yang memiliki instalasi Cocoapods (dan ketergantungan) yang ekstensif. Anda dapat mematikan izin ini SEBELUM Anda menginstal cocoapods ke dalam proyek Anda dengan meletakkan IzinConfiguration.xcconfig di root proyek Anda - Anda dapat membaca lebih lanjut tentang ini di sini: https://cocoapods.org/pods/Permission#installation
Ini semua mengejutkan saya ketika versi baru aplikasi saya ditolak dengan 7 kunci / string izin hilang dari file Info.plist. Saya kemudian harus menggali proyek saya untuk menemukan apa yang menyebabkan ini karena aplikasi saya tidak memerlukan atau menggunakan izin ini (tidak pernah).
Ini mungkin ada tetapi saat ini saya tidak dapat menemukan cara untuk menghapus izin setelah integrasi pod ... harus menggali lebih dalam tentang cara melakukan ini tanpa memulai proyek saya dari awal.
sumber