2017-01-13 21 views
10

Cordova uygulamaları geliştirmek için görsel stüdyosu kullanıyorum.Visual Studio Cordova Eksik Info.plist anahtarı

Uygulamamı Xcode8 ile Mağaza'ya yüklerseniz, aşağıdaki hata postasını alırım. Bir diğer stackoverflow-sorusundan yola çıkarak

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

boyunca hep şeffaf eklentisi https://github.com/leecrossley/cordova-plugin-transport-security eklendi ve plugin.xml modifiye:

<plugin name="cordova-plugin-transport-security" version="0.1.2" src="C:\Users\xxx\cordova-plugin-transport-security-master\cordova-plugin-transport-security-master" />: Benim config.xml olarak

<platform name="ios"> <config-file target="*-Info.plist" parent="NSAppTransportSecurity"> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSPhotoLibraryUsageDescription</key> <string>This app requires access to the photo library.</string> <key>NSMicrophoneUsageDescription</key> <string>This app does not require access to the microphone.</string> <key>NSCameraUsageDescription</key> <string>This app requires access to the camera.</string> </dict> </config-file> </platform>

Bundan sonra iO için uygulamayı yapıyorum S ve xcode ile yükledim.

Ancak hata hala var.

+0

Bağlantıda gönderdiğim yanıtı kontrol edin - http://stackoverflow.com/questions/41525725/phonegap-missing-plist-key Benzer bir soruna benziyor – Gandhi

cevap

5

Bu değişiklikle, NSPhotoLibraryUsageDescription ve NSAppTransportSecurity içindeki diğer Kullanım Öykülerini yazıyorsunuz, kökte olmalıdır. Eğer cordova-eklentisi medya-yakalama son sürümünü kullanıyorsanız

, zaten needed values

 <preference name="CAMERA_USAGE_DESCRIPTION" default=" " /> 
     <config-file target="*-Info.plist" parent="NSCameraUsageDescription"> 
      <string>$CAMERA_USAGE_DESCRIPTION</string> 
     </config-file> 

     <preference name="MICROPHONE_USAGE_DESCRIPTION" default=" " /> 
     <config-file target="*-Info.plist" parent="NSMicrophoneUsageDescription"> 
      <string>$MICROPHONE_USAGE_DESCRIPTION</string> 
     </config-file> 

     <preference name="PHOTOLIBRARY_USAGE_DESCRIPTION" default=" " /> 
     <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription"> 
      <string>$PHOTOLIBRARY_USAGE_DESCRIPTION</string> 
     </config-file> 

değeri değişken peynir altı suyundan aldı çünkü sen CLI'den eklentisini yüklemek $CAMERA_USAGE_DESCRIPTION olduğunu var. Visual Studio'yu kullandığınızda, değeri config.xml dosyasında bir değişken etiketi kullanarak ayarlayabileceğinizi düşünüyorum. değişken etiketleri onları kullanacağı eklenti içinde olması gerekir:

<plugin name="cordova-plugin-media-capture" spec="~1.4.1"> 
     <variable name="CAMERA_USAGE_DESCRIPTION" value="your camera usage message" /> 
     <variable name="MICROPHONE_USAGE_DESCRIPTION" value="your microphone usage message" /> 
     <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="your photolibrary usage message" /> 
    </plugin> 

Bu işe yaramazsa, değiştirilmiş eklentiyi kullanmaya devam, ama önceki kodda olduğu gibi ayrı bir config-file etiketi biçimine UsageDescription ekleyebilir .

+0

Teşekkür ederiz. İlk başta, değişken etiketini '' etiketinin içine doğrudan config.xml dosyasına ekleyerek denedim. Bu işe yaramıyor. Değişken etiketini başka bir hiyerarşiye yerleştirmeli miyim? Bundan sonra, 'plugin.xml' değişkenini bir dizeyle değiştirdim. Şimdi çalışıyor. :) –

+0

@ alexander-fire Cevabı düzenledim, değişken etiketi onu kullanan eklentinin içine girer. Cevabım size yardım ederse cevabı kabul edebilirsiniz – jcesarmobile

İlgili konular