Отказ от ответственности: это выглядит невероятно так же, как Ionic Native HTTP не работает для Anroid 9 (Pie) и выше? , но это не так!
Мы столкнулись с невероятно странной и сложной проблемой после обновления нашего приложения сегодня.
У нас есть приложение Ionic v1 для Android. Он использует Cordova-Android 7. Сегодня, когда мы загружали новое обновление в магазин воспроизведения, мы обнаружили ограничение, заставляющее нас ориентироваться на SDK, начиная с 28. Мы добавили <preference name="android-targetSdkVersion" value="28" />
в файл config.xml
, пересобрав приложение,протестировано на некоторых смартфонах и загружено. После распространения мы обнаружили, что все сетевые соединения не работают на устройствах Android 9. Мы были уверены, что это будет популярная ошибка открытого текста , поэтому мы изменили все URL-адреса на HTTPS. Но проблема осталась. Затем мы снова создаем приложение, но с атрибутом debuggable в манифесте, чтобы мы могли проверить приложение и увидеть ошибки, и мы обнаружили, что если мы включим функцию отладки, ошибка не произойдет - мы просто добавляем ее вманифест, который мы все еще строим с флагом --release
.
Итак, последний сценарий таков:
- http-запросы не выполняются только после таргетинга на SDK 28, только на устройствах Android 9, и только если приложение построено с
--release flag
и мы не помещаем атрибут отладки в манифест - , если мы изменим любую точку выше, ошибка исчезнет, поэтому нет способа отладить приложение
- использует https для всех запросов
- , когда приложение не работает, запросы не доходят до сервера, мы уже наблюдали за этим
Так что, черт возьми, здесь может произойти сбой?