Приложение Ionic падает на iOS 12.2 из-за '_alwaysRunsAtForegroundPriority' - PullRequest
0 голосов
/ 01 февраля 2019

На iOS 12.2 мое приложение закрывается сразу после запуска, с этим сообщением в xcode:

Завершение приложения из-за необработанного исключения 'NSUnknownKeyException', причина: '[setValue: forUndefinedKey:]: thisкласс не соответствует значению ключа для кода _alwaysRunsAtForegroundPriority. '

Кто-нибудь, кто может указать мне правильное направление для этого?Я вижу, что ранее было несколько предупреждений об этом:

Как разрешить проверку приложения "Приложение ссылается на непубличные селекторы в Payload / MyApp.app / MyApp: _setAlwaysRunsAtForegroundPriority:"?

Ответ на этот пост заключается в том, что это предупреждение системы безопасности из веб-обзора, которое можно игнорировать.Но когда оно ломает мое приложение, его уже нельзя игнорировать :)

Заранее благодарен за любую помощь.

Lars

Обновление 2 февраля 2019 г.: Похоже, что это ошибка cordova-plugin-background-mode, которая вызывает ошибку.Но я должен признать, что понятия не имею, как это исправить.Это работает, когда я удаляю этот плагин из моего проекта.Но мне нужен этот плагин или, по крайней мере, функциональность в фоновом режиме, поэтому мне нужно как-то это исправить.

Обновление от 5 февраля 2019 года: @coderroggie: у меня также есть версия 2.3.2 плагина cordova-plugin-ionic-webview.Странно, что у меня работает только при удалении cordova-plugin-background-mode (версия 0.7.2)

Я опубликую свою ионную информацию, если она может дать вам какую-либо полезную информацию.

Ionic:

ionic (Ionic CLI): 4.9.0 (/ usr / local / lib / node_modules / ionic)
Ionic Framework: ионно-угловой 3.9.2@ ionic / app-scripts: 3.2.1

Cordova:

cordova (Cordova CLI): 8.1.2 (cordova-lib@8.1.1) Cordova Платформы: ios 4.5.5 CordovaПлагины: cordova-plugin-ionic 5.2.9, cordova-plugin-ionic-клавиатура 2.1.3, cordova-plugin-ionic-webview 2.3.2, (и 22 других плагина)

Система:

ios-deploy: 1.9.2 NodeJS: v8.11.1 (/ usr / local / bin / node)
npm: 6.4.1 ОС: macOS Mojave Xcode: Xcode 10.1 Версия сборки 10B61

Обновление 2 февраля (снова)

Мои плагины:

cordova-android-firebase-gradle-release 1.0.2 "cordova-android-firebase-gradle-gradle-релиз "
cordova-android-play-services-gradle-release 1.4.3" cordova-android-play-services-gradle-release "
cordova-android-support-gradle-release 1.4.4" cordova-android-support-gradle-release "
cordova-plugin-app-version0.1.9 "AppVersion"
cordova-plugin-background-mode 0.7.2 "BackgroundMode"
cordova-plugin-badge 0.8.7 "Значок"
cordova-plugin-camera 4.0.3 "Камера"
cordova-plugin-console 1.1.0 "Консоль"
cordova-plugin-customurlscheme 4.3.0 "Пользовательская схема URL"
cordova-plugin-device 2.0.2 "Устройство"
cordova-plugin-файл 6.0.1 «Файл»
cordova-plugin-file-Transfer 1.7.1 «Передача файлов»
cordova-plugin-geolocation 4.0.1 «Геолокация»
cordova-plugin-ionic 5.2.9"cordova-plugin-ionic"
cordova-plugin-ionic-клавиатура 2.1.3 "cordova-plugin-ionic-клавиатура"
cordova-plugin-ionic-webview 2.3.2 "cordova-plugin-ionic-webview"
cordova-plugin-local-messages 0.9.0-beta.2" LocalNotification "
cordova-plugin-mauron85-background-geolocation 3.0.0-alpha.49" CDVBackgroundGeolocation "
cordova-plugin-network-information 2.0.1 "Информация о сети"
cordova-plugin-safariviewcontroller 1.5.4 "SafariViewController"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-vibration 3.1.0 "Вибрация"
cordova-plugin-whitelist 1.3.3 "Белый список"
cordova-support-google-services 1.1.0 "cordova-support-google-services "
cordova.plugins.diagnostic 4.0.7" Диагностика "
ionic-plugin-клавиатура 2.2.1" Клавиатура "
phonegap-plugin-push 2.1.3" PushPlugin "

Ответы [ 6 ]

0 голосов
/ 06 мая 2019

Это помогло мне: «Основной интерфейс информации о развертывании должен быть пустым» источник: https://forum.ionicframework.com/t/app-crashes-when-i-try-to-open-in-it-on-tesflight-on-a-iphone/21005/3

0 голосов
/ 03 мая 2019

Чтобы определить, какой из используемых вами плагинов вызывает ошибку, выполните:

cd %HOME%/src/myProject    
grep -r "_alwaysRunsAtForegroundPriority" node_modules

Найдя его, найдите обновление, которое решает проблему, или замените его на альтернативный плагин.

В нашем случае плагином был WKWebView.Быстрый поиск в Google нашел , они имели ошибку и исправили ее .Мы обновили плагин, и он работал гладко.

0 голосов
/ 25 марта 2019

Я думаю, что ваша основная проблема в том, что вы работаете в WKWebView, который не может работать в фоновом режиме надежно.Я сталкиваюсь с подобной проблемой, и я боюсь, что лучшее краткосрочное решение, которое я мог найти, состояло в том, чтобы использовать UIWebView.UIWebView не является хорошим долгосрочным решением, потому что он помечен как устаревший.Похоже, вы еще не используете Ionic 4, что действительно хорошо в этом случае.Я думаю, что вы можете удалить 2 ионных плагина, используйте cordova@6.5.0 и cordova engine ios 4.5.4.Надеюсь, что тогда, при запуске в Xcode, все будет работать, и вы увидите сообщение в начале о «Использование UIWebView».Эта проблема является частью свидетельства того, что WKWebView не должен работать в фоновом режиме: https://issues.apache.org/jira/browse/CB-10657 https://issues.apache.org/jira/browse/CB-11561

0 голосов
/ 18 марта 2019

Попробуй это.Загрузите плагин cordova-plugin-background-mode или cordova-plugin-better-background-mode в вашу локальную папку, прикрепите его к проекту в качестве локального плагина.Перейдите в файл плагина src \ ios \ APPBackgroundMode.m и замените следующие строки

+ (NSString*) wkProperty
{
    NSString* str = @"X2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eQ==";
    NSData* data  = [[NSData alloc] initWithBase64EncodedString:str options:0];

    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}

на

+ (NSString*) wkProperty
{
    NSString* str = @"YWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5";
    NSData* data  = [[NSData alloc] initWithBase64EncodedString:str options:0];

    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
0 голосов
/ 24 февраля 2019

В плагине есть «setValue» в нижней части, которая уничтожает приложение.Получил сборку за 12.2.Попробуйте

ionic cordova plugin add https://github.com/iowayankee/cordova-plugin-background-mode.git

package.json

    "cordova-plugin-background-mode": "git+https://github.com/iowayankee/cordova-plugin-background-mode.git",

config.xml

    <plugin name="cordova-plugin-background-mode" spec="git+https://github.com/iowayankee/cordova-plugin-background-mode.git" />

Надеюсь, кто-нибудь хотя бы поможет запустить сборку

0 голосов
/ 05 февраля 2019

У меня была похожая проблема с нашим приложением ionic 3, которое вылетало при запуске с бета-версией iOS 12.2.У меня также есть последняя версия cordova-plugin-background-mode.

Я исправил свою проблему, обновив до версию 2.3.2 плагина cordova-plugin-ionic-webview..

Попробуйте это.Если это не помогло, пожалуйста, опубликуйте свои плагины и версии, чтобы я мог сравнить.

Обновление 5 февраля 2019
Я облажался, отвечая ранее.В настоящее время я использую cordova-plugin-better-background-mode@0.7.5, который является форком cordova-plugin-background-mode@0.7.2.

Попробуйте переключиться на него.Если это не сработает, я опубликую остальные различия, которые у нас могут быть.

...