Невозможно изменить NSCameraUsageDescription в Config.xml - PullRequest
0 голосов
/ 01 июня 2018

Я пытался решить эту проблему в течение последних нескольких дней, так как она мешает мне развернуть обновление в магазине приложений iOS.Когда я пробую одно из решений, которое я нахожу и собираю файл .ipa, я иду и проверяю файл .plist, но свойство NSCameraUsageDescription никогда не показывает пользовательское сообщение, которое я пытаюсь отобразить.

Я не могу сказать, делаю ли я это неправильно, поскольку сделал почти все, что смог найти, чтобы решить эту проблему.До сих пор я пробовал это решение и несколько других, которые просто меняют формат на то, как установлено свойство.Я также сделал обновление до версии Cordova, чтобы я мог использовать последнюю версию плагина камеры, чтобы попытаться исправить это.

Вот мой текущий файл Config.xml: (комментируемые части - это другие методы, которые япытался.)

<widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" id="com.devexpress.apptemplate" version="1.0" versionCode="1" xmlns:android="http://schemas.android.com/apk/res/android">
  <name>ApplicationTemplate</name>
  <preference name="prerendered-icon" value="true" />
  <preference name="android-windowSoftInputMode" value="adjustPan" />
  <preference name="SplashScreen" value="splash" />
  <preference name="SplashScreenDelay" value="3000" />
  <preference name="FadeSplashScreen" value="false" />
  <preference name="FadeSplashScreenDuration" value="2000" />
  <preference name="SplashShowOnlyFirstTime" value="false" />
  <preference name="DisallowOverscroll" value="true" />
  <preference name="StatusBarOverlaysWebView" value="false" />
  <preference name="StatusBarBackgroundColor" value="#000000" />
  <preference name="android-minSdkVersion" value="16" />
  <preference name="android-targetSdkVersion" value="26" />
  <preference name="android-build-tool" value="gradle" />
  <preference name="iosPersistentFileLocation" value="Compatibility" />
  <preference name="AndroidPersistentFileLocation" value="Compatibility" />
  <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,assets,root" />

  <preference name='phonegap-version' value='cli-7.1.0' />
  <preference name='pgb-builder-version' value='1' />

  <feature name="http://api.phonegap.com/1.0/network" />

  <config-file platform="android" parent="/manifest" mode="add">
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
  </config-file>

  <platform name="ios">
    <preference name="CAMERA_USAGE_DESCRIPTION" default=" " />
    <config-file target="*-Info.plist" parent="NSCameraUsageDescription">
      <string>Camera is used for uploading activation photos and profile pictures.</string>
    </config-file>
    <preference name="PHOTOLIBRARY_USAGE_DESCRIPTION" default=" " />
    <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
      <string>Photo Library is used for uploading activation photos and profile pictures.</string>
    </config-file>
   </platform>


   <!--<edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="overwrite">
    <string>Camera is used for uploading activation photos and profile pictures.</string>
  </edit-config>-->

    <!--<platform name="ios">
    <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
      <string>Camera is used for uploading activation photos and profile pictures.</string>
    </edit-config>
    <edit-config target="NSPhotoLibraryUsageDescription" file="Info.plist" mode="merge">
      <string>Photo Library is used for uploading activation photos and profile pictures.</string>
    </edit-config>
  </platform>-->

  <preference name="ShowSplashScreenSpinner" value="false" />
  <author email="email@address.com" href="address.com">Description</author>

  <gap:plugin name="cordova-plugin-camera" version="4.0.3" source="npm" />
  <gap:plugin name="cordova-plugin-device" version="1.1.5" source="npm" />
  <gap:plugin name="cordova-plugin-file" version="4.2.0" source="npm" />
  <gap:plugin name="cordova-plugin-file-transfer" version="1.5.1" source="npm" />
  <gap:plugin name="cordova-plugin-geolocation" version="2.4.2" source="npm" />
  <gap:plugin name="cordova-plugin-network-information" source="npm" />
  <gap:plugin name="cordova-plugin-splashscreen" version="3.2.2" onload="true" source="npm" />
  <gap:plugin name="cordova-plugin-whitelist" source="npm" />
  <gap:plugin name="cordova-plugin-ios-longpress-fix" version="1.1.0" source="npm" />
  <gap:plugin name="cordova-plugin-statusbar" version="2.1.3" source="npm" onload="true" />
  <gap:plugin name="ionic-plugin-keyboard" source="npm" />
  <gap:plugin name="cordova-plugin-market" source="npm" />
  <gap:plugin name="cordova-plugin-appversion" source="npm" />
  <gap:plugin name="cordova.plugins.diagnostic" source="npm" />
  <plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" source="npm" />

  <access origin="*" />
  <access origin="tel:*" launch-external="yes" />
  <access origin="geo:*" launch-external="yes" />
</widget>

Кто-нибудь может увидеть, если я делаю что-то не так?Любой совет будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Они изменили использование config-file на edit-config в cli-7.0.1, чтобы лучше совместить его с plugin.xml (ну, по крайней мере, это моя теория).

Прочитайте документацию по plugin.xmlдля синтаксиса (примечание: он отличается от конфигурационного файла!): https://cordova.apache.org/docs/en/latest/plugin_ref/spec.html

0 голосов
/ 01 июня 2018

Нашел ответ здесь .

Вам необходимо использовать edit-config в config.xml.Как это:

    <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge">
      <string>need camera access to take pictures</string>
    </edit-config>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...