React-native Android выпуск сборки не работает (навигация по интерфейсу пользователя прерывается без ошибок) - корректно работает в отладочной сборке - PullRequest
1 голос
/ 31 января 2020

У меня есть приложение-родное приложение, которое корректно работает в Android отладочных сборках, но не работает в Android сборках релиза.

Приложение использует redux, ax ios и реагирует -navigation:

  • Поле ввода поиска на главном экране
  • Нажатие на кнопку «Поиск» вызывает вызов избыточности, который делает запрос API через ax ios, который обновляет избыточность состояние редуктора
  • Главный экран отслеживает состояние редуктора и, когда у нас появляются новые результаты поиска, он переходит к экрану результатов с помощью response-navigation

Все это прекрасно работает в режиме отладки. на реальном устройстве Android и на эмуляторе (реакция на запуск - android).

Когда я запускаю сборку релиза (response-native run- android --variant = release), он компилирует, устанавливает и загружает домашний экран, как и раньше, но когда я нажимаю кнопку поиска, он не перейти к результатам поиска. Там нет ошибки.

Вещи, которые я протестировал:

  • Это приложение запускается и исключение / ошибка?

    • Нет, нет ошибка. Приложение продолжает работать. При запуске adb logcat отображается много данных журнала, но я не вижу никаких новых ошибок при запуске / тестировании приложения.
  • Запущен ли запрос API?

    • Да. Включив ни одного SSL-трафика c (cleartextTrafficPermitted = "true"), я смог запустить Reactotron со сборкой релиза, и я увидел, что запрос API выполнен и данные ответа получены. Но вывод журнала останавливается на этом этапе. Нет ошибки.
  • Соответствует ли сертификат SSL SSL android требованиям?

    • Да, это так. Я проверил это (ssllabs.com). Он работает в режиме отладки на реальном устройстве, поэтому он должен работать и в выпуске.
  • Является ли устаревшая зависимость причиной сбоя?

    • Я пытался обновить свои зависимости до последних версий. Приложение продолжает нормально работать в режиме отладки, но выходит из строя в выпуске.

Как мне определить причину сбоя?

1 Ответ

0 голосов
/ 01 февраля 2020

Оказывается, минификация пакета Javascript сломала мой код.

Не было выдано никакой ошибки, поскольку исключение было выдано в асинхронной функции c.

Мне удалось отключить минимизацию пакета, передав «--minify = false» упаковщику через app / build.gradle:

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,  
    extraPackagerArgs: [ '--minify=false' ]
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...