2016-12-14 5 views
2

У меня есть PhoneGap заявление, что не работает должным образом, пока в прошлую пятницу, когда она купируется от того, принимают в яблочном магазине со следующим сообщением:PhoneGap приложение замораживания в ios10

Это приложение пытается получить доступ к частной жизни -чувствительные данные без описания использования. Info.plist приложения должен содержать ключ NSPhotoLibraryUsageDescription со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Это приложение пытается получить доступ к конфиденциальным данным без описания использования. Info.plist приложения должен содержать ключ NSBluetoothPeripheralUsageDescription со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Это приложение пытается получить доступ к конфиденциальным данным без описания использования. Info.plist приложения должен содержать NSMicrophoneUsageDescription ключ со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Чтобы устранить эту проблему, после некоторых исследований я пришел к следующему решению, чтобы добавить некоторые плагины Cordova в моем файле config.xml:

<plugin name="cordova-plugin-media-capture" source="npm" spec="1.4.0"> 
    <variable name="MICROPHONE_USAGE_DESCRIPTION" value="App would like to access your microphone." /> 
    <variable name="CAMERA_USAGE_DESCRIPTION" value="App would like to access the camera." /> 
    <variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="App would like to access the library." /> 
</plugin> 
<plugin name="cordova-plugin-ios-ble-permissions" source="npm" spec="*"> 
    <variable name="BLUETOOTH_USAGE_DESCRIPTION" value="App would like to access your bluetooth." /> 
</plugin> 

Это решило проблему в яблочном магазине, и я подтвердил, что в файле Info.plist есть все эти переменные.

Но теперь приложение зависает или падает, и только в устройствах iOs10.

Я прошу дать некоторое руководство/помощь, чтобы определить, что может быть источником этой проблемы.

Благодарим вас заблаговременно.


EDIT:

Finnaly удалось отладить приложение удаленно и выяснить некоторые ошибки, как это:

[Error] Отказался для загрузки данных: текст/JavaScript; кодировка = UTF - (...) - приложение-shell.html-170.js% 0A, потому что он не появляется в скрипт-Src директивы Content Security Policy

Мой текущий мета-тег имеет эти значения:

<meta http-equiv="Content-Security-Policy" content="default-src gap://ready file://* *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *; img-src 'self' data: blob: *; media-src 'self' mediastream: blob:; connect-src * blob:"> 

и белый список конфигурации:

<plugin name="cordova-plugin-whitelist" spec="1.3.1"/> 
<access origin="*"/> 
<allow-navigation href="*"/> 
<allow-intent href="http://*/*"/> 
<allow-intent href="https://*/*"/> 
<allow-intent href="tel:*"/> 
<allow-intent href="sms:*"/> 
<allow-intent href="mailto:*"/> 
<allow-intent href="geo:*"/> 

любой кончик, что им делать неправильно?

+0

Перед обновлением вашей, что было целевое развертывание приложения? – KAR

+0

Для создания проекта я использую https://www.npmjs.com/package/gulp-phonegap-build, для целевых платформ являются ios и android, для развертывания в магазине Apple я использую файл Ipa, который становится доступным на веб-сайте phoegap build.phonegap.com и использовать его с загрузчиком приложений. Не уверен, что я отвечаю на вопрос ... –

ответ

0

решаемые его!

В мета-тег вместо:

script-src 'self' 'unsafe-inline' 'unsafe-eval' * 

Я добавил:

script-src 'self' 'unsafe-inline' 'unsafe-eval' data: *; 
0

Это может быть вызвано Content-Security-Policy.

попытаться добавить default-src gap: в тег <meta>.

e.г:

<head> 
    <meta http-equiv="Content-Security-Policy" content="default-src * 'self' gap: wss: ws:; font-src * data:; img-src * data:; style-src 'self' https: 'unsafe-inline'; script-src 'self' https: 'unsafe-inline' 'unsafe-eval'"> 
</head> 

исх: "No Content-Security-Policy meta tag found." error in my phonegap application

+0

Я следую вашим советам, но это не решило проблему, после экрана spalsh приложение остается белым, когда оно должно перейти на страницу входа в систему. –

+0

Проблема может возникнуть в собственном коде или локальный код js. Если это проблема локального js, попробуйте использовать Safari для проверки вашего приложения и отслеживания журналов ошибок – gokaka

Смежные вопросы