Saya telah mengirimkan aplikasi saya untuk ditinjau ke App Store Connect. Meskipun aplikasi ini masih dalam peninjauan, saya menerima email untuk memberi tahu saya bahwa saya harus memperbaiki kesalahan. Inilah isi pesannya:
Pengembang yang terhormat,
Kami mengidentifikasi satu atau lebih masalah dengan pengiriman terbaru untuk aplikasi Anda XXXXX. Pengiriman Anda berhasil, tetapi Anda mungkin ingin memperbaiki masalah berikut dalam pengiriman berikutnya:
"String Tujuan Hilang dalam File Info.plist. Kode aplikasi Anda mereferensikan satu atau lebih API yang mengakses data pengguna yang sensitif. File Info.plist aplikasi harus berisi kunci NSLocationAlwaysUsageDescription dengan string purpose yang menghadap pengguna yang menjelaskan dengan jelas dan sepenuhnya mengapa aplikasi Anda perlu menjelaskan. Mulai musim semi 2019, semua aplikasi yang dikirimkan ke App Store yang mengakses data pengguna akan diminta untuk memasukkan string tujuan. Jika Anda menggunakan perpustakaan eksternal atau SDK, mereka dapat merujuk API yang membutuhkan string tujuan. mungkin tidak menggunakan API ini, string tujuan masih diperlukan. Anda dapat menghubungi pengembang perpustakaan atau SDK dan meminta mereka merilis versi kode mereka yang tidak mengandung API.
Setelah Anda memperbaiki masalah, Anda dapat menggunakan Xcode atau Application Loader untuk mengunggah biner baru ke iTunes Connect.
Salam Hormat,
Tim App Store
Aplikasi saya sepenuhnya dibangun dengan Expo dan saya tidak tahu cara mengakses dan memodifikasi Info.plist.
Ada ide?
sumber
Jawaban:
Jika Anda menggunakan Expo, Anda dapat menambahkan penyelesaian dengan menambahkan infoPlist ke app.json seperti:
Expo Dokumen
sumber
EDIT April 2019 : Anda sekarang harus menambahkan dua kunci ini, karena musim semi 2019 telah dimulai. Perhatikan bahwa
NSLocationAlwaysUsageDescription
sekarang sudah usang (sejak iOS 11) dan telah diganti denganNSLocationAlwaysAndWhenInUseUsageDescription
danNSLocationWhenInUseUsageDescription
. Jika Anda ingin mendukung lebih rendah dari iOS 11, Anda harus menggunakan ketiga nilai tersebut.Singkatnya, Anda harus:
NSLocationAlwaysAndWhenInUseUsageDescription
ANDNSLocationWhenInUseUsageDescription
untuk iOS 11 dan lebih banyakNSLocationAlwaysUsageDescription
jika Anda ingin mendukung iOS 10 dan kurangNSLocationUsageDescription
jika Anda ingin mendukung iOS 8 dan kurang.Anda dapat mengirim aplikasi bahkan jika Anda mendapat pesan ini!Saya baru saja menghadapi masalah yang sama kemarin, bahkan jika aplikasi tidak menggunakan fungsionalitas lokasi. Ini mungkin terkait dengan beberapa kerangka kerja yang termasuk dalam proyek yang memiliki fitur opsional ini.
Saya dapat mengonfirmasi bahwa aplikasi saya telah disetujui walaupun tanpa
NSLocationAlwaysUsageDescription
danNSLocationWhenInUseUsageDescription
kunciinfo.plist
Memang, seperti yang dinyatakan Apple dalam surat:
Jadi, satu-satunya hal yang harus dilakukan adalah menambahkan kunci ini (saat ini lebih baik, sehingga Anda tidak akan lupa) dalam proyek Anda sehingga akan dimasukkan dalam pembaruan Anda berikutnya .
Tambahkan saja dua entri baru di Anda
info.plist
, denganNSLocationAlwaysUsageDescription
danNSLocationWhenInUseUsageDescription
sebagai kunci dan deskripsi singkat mengapa Anda menggunakannya sebagai nilai (bahkan jika Anda tidak benar-benar menggunakannya ...).sumber
NSLocationAlwaysUsageDescription
harus diganti olehNSLocationAlwaysAndWhenInUseUsageDescription
danNSLocationWhenInUseUsageDescription
, dan bukan olehNSLocationUsageDescription
(seperti yang saya tulis sebelumnya, maaf ...). Saya telah memperbarui jawaban saya untuk menambahkan jumlah proses.Saya memiliki beberapa aplikasi di toko dan saya mencoba mendistribusikan versi untuk QA dan hal yang sama terjadi di dua Aplikasi yang berbeda. Saya pikir ini adalah kriteria baru untuk menerima unggahan build ke tautan Appstore.
Solusinya sederhana, tambahkan baris berikut dalam file .plist.
<key>NSLocationAlwaysUsageDescription</key>
<string>custom message</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>custom message</string>
PS: Dalam kasus saya belum menggunakan fitur lokasi, tetapi saya menambahkan baris ini untuk mematuhi pedoman menghubungkan Appstore. Btw setelah menerima email itu, saya bisa menguji aplikasi bahkan ketika mereka mengatakan membangun itu memiliki beberapa masalah.
Saya harap ini berhasil untuk kalian.
sumber
<key>NSLocationUsageDescription</key>
Ini persyaratan baru dari apel, bahkan jika Anda tidak menggunakan lokasi. Jika Anda ingin menambahkan izin dalam Xcode, cari "Privasi - Deskripsi Penggunaan Lokasi" dan "Privasi - Lokasi Saat Di Gunakan Deskripsi Penggunaan" dan ketikkan string khusus untuk masing-masing.
sumber
Untuk lebih menyederhanakan Anda dapat menambahkan baris ini di info Anda. Daftar. Kesalahan ini terjadi karena Mulai musim semi 2019, semua aplikasi yang dikirimkan ke App Store yang mengakses data pengguna akan diminta untuk memasukkan string tujuan.
Tambahkan baris-baris berikut dalam daftar Anda
sumber
NSLocationAlwaysUsageDescription Lokasi Anda diperlukan untuk manfaat xyz untuk Anda NSLocationWhenInUseUsageUsageDescription Lokasi Anda diperlukan untuk manfaat xyz untuk Anda
sumber
Kami memang menerima email yang sama dan kami tidak menggunakan CoreLocation sama sekali. Setelah pencarian cepat, kami menemukan bahwa Parse SDK dapat menggunakan CoreLocation. Di email Apple, mereka dengan jelas mengatakan:
Itu berarti begitu kode Anda atau Perpustakaan atau SDK lainnya dapat menggunakan CoreLocation, bahkan jika Anda tidak menggunakannya, Anda perlu memberikan deskripsi privasi untuk "When In Use" dan "Always Use".
Ini juga sesuatu yang baru dari Apple dan untuk saat ini hanya peringatan tetapi akan diperlukan mulai musim semi 2019 untuk pengiriman baru.
sumber
CLLocationManager.requestWhenInUseAuthorization()
dipanggil. Apple menganalisis setiap kode aplikasi untuk melihat apakah fungsi seperti itu bisa dipanggil. Jika tidak pernah dipanggil, lansiran tidak akan muncul.Masalah ini terjadi karena Anda belum memasukkan
untuk aplikasi Anda. Saya menghadapi masalah yang sama ketika saya mencoba mengirimkan aplikasi saya di AppStore. Setelah aplikasi diproses, saya mendapat email yang sama. Saya baru saja menambahkan deskripsi dan sekarang sudah terselesaikan.
Semoga ini membantu.
sumber
<key>NSLocationAlwaysUsageDescription</key> <string>Always And In Use Permission</string>
Ada beberapa kasus berikut:
Apple menyatakan di:
dan:
NSLocationUsageDescription
tampaknya mati, satu-satunya referensi di situs ADC adalah: https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdfJadi yang pasti, gunakan dulu 3.
sumber
Semua jawaban ini memberi tahu Anda cara mematuhi aturan App Store untuk menghindari peringatan, tetapi perbaikan sebenarnya adalah untuk Expo agar Anda dapat menonaktifkan persyaratan SDK mereka untuk Layanan Lokasi kecuali Anda benar-benar menggunakannya - Saya tidak yakin apakah ini bisa jadi.
sumber
masalah yang sama pada 19 Februari, mendapat email dengan banyak izin yang tidak saya gunakan, saya berasumsi itu dari plugin. Apple mengatakan pada 19 Maret ini adalah persyaratan jadi saya menambahkan ini di info.plst dan mengunggah lagi.
Memang sangat konyol.
sumber
Saya juga menghadapi masalah yang sama tetapi setelah 27 jam, saya menerima email tentang disetujui bahkan saya tidak melakukan apa pun. Jadi tunggu sekitar 24 jam daripada melakukan semua proses ini lagi.
sumber
Saya
<key>NSLocationWhenInUseUsageDescription </key>
bukannya<key>NSLocationWhenInUseUsageDescription</key>
pastikan untuk menghapus spasi spasi tambahan
sumber
Tinjau email yang Anda terima dari ** App Store Connect **
Identifikasi Kunci yang Hilang
Instruksi
Buka file info.plist.
Tambahkan dan cari kunci yang hilang dari opsi yang disediakan (mis. Kontak = Privasi - Deskripsi Penggunaan Kontak)
Tambahkan Deskripsi Penggunaan:
Contoh:
sumber
Dengan Xcode 11 salin kunci
NSLocationAlwaysUsageDescription
dan tambahkan ini keInfo
->Custom iOS Target Properties
-> Klik+
di kiri bawah tab ini dan sebagai nilai masukkan semacam deskripsi sepertiThis app requires location access to function properly.
.sumber
"String Tujuan Yang Hilang dalam File Info.plist. Kode aplikasi Anda merujuk satu atau lebih API yang mengakses data pengguna yang sensitif. File Info.plist aplikasi harus berisi kunci NSLocationAlwaysUsageDescription dengan string purpose yang menghadap pengguna yang menjelaskan dengan jelas dan sepenuhnya mengapa aplikasi Anda perlu menjelaskan. Mulai musim semi 2019, semua aplikasi yang dikirimkan ke App Store yang mengakses data pengguna akan diminta untuk memasukkan string tujuan. Jika Anda menggunakan perpustakaan eksternal atau SDK, mereka dapat mereferensikan API yang membutuhkan string tujuan. mungkin tidak menggunakan API ini, string tujuan masih diperlukan. Anda dapat menghubungi pengembang perpustakaan atau SDK dan meminta mereka merilis versi kode mereka yang tidak mengandung API.
Buka info.plist sebagai kode sumber.
Tambahkan baris-baris berikut dalam daftar Anda
sumber
Aplikasi saya juga mengerti, dan saya tidak melakukan apa-apa selain itu bisa berjalan dengan baik, lain kali saya pikir harus menambahkan kunci seperti itu di plist, cukup lakukan beberapa deskripsi
sumber
Jawaban singkat untuk masalah di atas -
NSLocationAlwaysUsageDescription
harus diperbarui dengan uraian berikut dalam file Info.plistsumber
Dalam kasus kami, kami menggunakan
NSLocationWhenInUseUsageDescription
di aplikasi kami, tetapi tidakNSLocationAlwaysUsageDescription
.Membaca dari komentar di sini (terima kasih matt-oakes), sepertinya
NSLocationAlwaysUsageDescription
sedang digunakan oleh salah satu kerangka kerja ketergantungan yang kami gunakan.Menjalankan aplikasi kami ini tidak menunjukkan modal izin NSLocationAlwaysUsageDescription yang sebenarnya, jadi sepertinya hanya menangani ini di latar belakang.
Jadi secara ringkas, menambahkan
NSLocationAlwaysUsageDescription
ke Info.plist memperbaiki email peringatan, dan tidak mengubah perilaku apa pun di aplikasi 👍🏻sumber