iOS 10 - Kamera, mikrofon ve Fotoğraf Kitaplığı izinlerinin sorulmasındaki değişiklikler uygulamanın çökmesine neden oluyor


104

iOS 10, Artık Ortam Kitaplığına, Fotoğraflara, Kameraya ve bunun gibi diğer Donanımlara Erişmek İçin Kullanıcı İzni Gerektiriyor. Bunun çözümü, anahtarlarını info.plistkullanıcı için verilerini nasıl kullandığımıza dair bir açıklama ile eklemektir.

Sadece birkaç anahtar bulabildim

NSPhotoLibraryUsageDescription
NSMicrophoneUsageDescription
NSCameraUsageDescription

Ben de daha fazla tuşları diğer donanım için de varsa bilmek istiyorum iOS 10 sen sağlamadıysanız info.plistuygun tuşları açıklama olmadan uygulama kilitlenir 8 beta - inşa XCode kullanılıyorsa.


iOS 10, Gizlilik Sözleşmesi kapsamında değil mi?
sage444

Bunun hakkında emin değilim.
Syed Ali Salman

Yanıtlar:


138

[İOS 13 için GÜNCELLENMİŞ gizlilik anahtarları listesi - aşağıya bakın]

Dosyanızda Cocoa Keysbelirtebileceğiniz her şeyin bir listesi vardır Info.plist:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

(Xcode: Hedef -> Bilgi -> Özel iOS Hedef Özellikleri)

iOS zaten daha önce mikrofona, kameraya ve medya kitaplığına erişmek için izinler gerektiriyordu (iOS 6, iOS 7), ancak iOS 10 uygulaması neden izin istediğinizi açıklamazsanız kilitleneceğinden ( boş).

Örnek açıklamalı gizlilik anahtarları: kopya kağıdı

Kaynak

Alternatif olarak, Info.plistkaynak kodu olarak açabilirsiniz : kaynak kodu

Kaynak

Ve aşağıdaki gibi gizlilik anahtarları ekleyin:

<key>NSLocationAlwaysUsageDescription</key>
<string>${PRODUCT_NAME} always location use</string>

Tüm gizlilik anahtarlarının listesi: [iOS 13'e GÜNCELLENDİ]

NFCReaderUsageDescription
NSAppleMusicUsageDescription
NSBluetoothAlwaysUsageDescription
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSFaceIDUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryAddUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription

2019 Güncellemesi:

Geçtiğimiz aylarda, kamera kullanım açıklamasında çekilen fotoğraflarla ne yapacağımı belirtmediğinden, uygulamalarımdan ikisi inceleme sırasında reddedildi .

Ben gelen açıklamayı değiştirmek zorunda ${PRODUCT_NAME} need access to the camera to take a photoiçin ${PRODUCT_NAME} need access to the camera to update your avataruygulama bağlamı (user avatar üzerine oturtulmuş) ortada olsa da.

Görünüşe göre Apple artık gizlilik kullanım açıklamalarına daha da fazla önem veriyor ve neden izin istediğimizi ayrıntılı olarak açıklamalıyız.


2
evet, ancak değişiklik şu ki, neden izin istediğimiz konusunda açıklama yapmadıysanız, uygulama şimdi çökecek. Yanlışım varsa lütfen düzelt.
Syed Ali Salman

1
@Syed Ali Salman Haklısınız - iOS10'dan beri çökecek, şimdi gerçekten sorunuzu anlayın. Cevabı güncelleyecektir. :)
KlimczakM

1
Umarım elma bunun zorunlu olup olmadığına karar verir. Apple belgelerine göre:Explain why your app needs the information if it’s not obvious. You can add custom text to the system-provided permission request alert. Make the text specific and polite, so people don’t feel pressured. Keep the text short, and use sentence case. There’s no need to include your app name. The system already identifies your app as the one making the request.
sumofighter666

Daha önce, yalnızca sistem tarafından oluşturulan mesajı görüntülemek için bu değerleri boş bırakabileceğim konusunda yorum yapmıştım ve işlevsel olarak iyi çalışsa da, bu anahtarları eklerseniz ancak onlar için bir değer ayarlamazsanız Apple'ın ikili dosyanızı otomatik olarak reddedeceği anlaşılıyor. .
Stonz2

13
Bana öyle geliyor ki , bir uygulamanın bir izin açıklaması olmadığında çökmesine izin vermek Apple'dan tamamen saçma ... Ne kadar kötü bir kullanıcı deneyimi! (Anonim) AppStore incelemesinde hızlı akıp gittiğinden şikayet ediyor ... Ve tabii ki Simultor farklı davranıyor ...
Gabriel

65

İos 10 istek izin örneği için aşağıdaki kodları bulabilirsiniz info.plist.
Özel mesajınız için değişiklik yapabilirsiniz.

    <key>NSCameraUsageDescription</key>
    <string>${PRODUCT_NAME} Camera Usage</string>

    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>${PRODUCT_NAME} BluetoothPeripheral</string>

    <key>NSCalendarsUsageDescription</key>
    <string>${PRODUCT_NAME} Calendar Usage</string>

    <key>NSContactsUsageDescription</key>
    <string>${PRODUCT_NAME} Contact fetch</string>

    <key>NSHealthShareUsageDescription</key>
    <string>${PRODUCT_NAME} Health Description</string>

    <key>NSHealthUpdateUsageDescription</key>
    <string>${PRODUCT_NAME} Health Updates</string>

    <key>NSHomeKitUsageDescription</key>
    <string>${PRODUCT_NAME} HomeKit Usage</string>

    <key>NSLocationAlwaysUsageDescription</key>
    <string>${PRODUCT_NAME} Use location always</string>

    <key>NSLocationUsageDescription</key>
    <string>${PRODUCT_NAME} Location Updates</string>

    <key>NSLocationWhenInUseUsageDescription</key>
    <string>${PRODUCT_NAME} WhenInUse Location</string>

    <key>NSAppleMusicUsageDescription</key>
    <string>${PRODUCT_NAME} Music Usage</string>

    <key>NSMicrophoneUsageDescription</key>
    <string>${PRODUCT_NAME} Microphone Usage</string>

    <key>NSMotionUsageDescription</key>
    <string>${PRODUCT_NAME} Motion Usage</string>

    <key>kTCCServiceMediaLibrary</key>
    <string>${PRODUCT_NAME} MediaLibrary Usage</string>

    <key>NSPhotoLibraryUsageDescription</key>
    <string>${PRODUCT_NAME} PhotoLibrary Usage</string>

    <key>NSRemindersUsageDescription</key>
    <string>${PRODUCT_NAME} Reminder Usage</string>

    <key>NSSiriUsageDescription</key>
    <string>${PRODUCT_NAME} Siri Usage</string>

    <key>NSSpeechRecognitionUsageDescription</key>
    <string>${PRODUCT_NAME} Speech Recognition Usage</string>

    <key>NSVideoSubscriberAccountUsageDescription</key>
    <string>${PRODUCT_NAME} Video Subscribe Usage</string>

iOS 11 ve artı, Kitaplığınıza fotoğraf / resim eklemek istiyorsanız, bu anahtarı eklemelisiniz

    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>${PRODUCT_NAME} library Usage</string>

Teşekkürler, gerçek yanıtı, sadece Apple diyor ki "Uygulama adınızı eklemenize gerek yok. Sistem, uygulamanızı istekte bulunan kişi olarak zaten tanımlıyor."
Yücel Bayram

2
Aradığım cevap buydu
Dinesh Phalwadiya

19

Bu izni iOS 10 için Info.plist'e eklemelisiniz.

Fotoğraf :

Key       :  Privacy - Photo Library Usage Description    
Value   :  $(PRODUCT_NAME) photo use

Mikrofon:

Key        :  Privacy - Microphone Usage Description    
Value    :  $(PRODUCT_NAME) microphone use

Kamera :

Key       :  Privacy - Camera Usage Description   
Value   :  $(PRODUCT_NAME) camera use

Sağ tuşlar gibidir NSPhotoLibraryUsageDescription.
BangOperator
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.