Версия метеор андроид сборка
У меня странная проблема. Я создаю свое приложение Meteor и запускаю его на устройстве Android с помощью -
meteor run android-device --mobile-server=<my_aws_ip>:3000
Когда приложение развертывается немедленно, оно подключается к серверу (и мой javascripts и т. Д. Работает). Через несколько секунд страница обновляется, и ни один из обратных вызовов javascript не работает. Пожалуйста, помогите мне отладить эту проблему.
Дополнительная информация: Если я изменю клиента (а не сервера) и разверну его в течение первых нескольких секунд, измененный клиент отобразится на телефоне. После первых нескольких секунд отображается версия, которая присутствует на сервере. Поэтому я думаю, что Cordova или Meteor пытаются получить клиентский код с сервера, что нарушает работу приложения. Есть ли способ предотвратить такое поведение?
Еще больше точек данных -
- В моем коде aws НЕ установлены платформы для android и ios. Из-за этого, я думаю, что плагины Cordova не установлены, что вызывает разрыв JS где-то.
- Самое простое исправление, о котором я могу подумать - это удалить автообновление кордовы. Это добавляется пакетом meteor-platform. Если я клонирую meteor-платформу и комментирую автообновление cordova, приложение не загружается.
Есть ли другой способ удаления автообновления?
1 ответ
Похоже, у вас есть другая версия вашего приложения, развернутая на mobile-server
адрес.
Локальный код запускается в режиме разработки. Ваш AWS, вероятно, находится в производственном режиме (и может содержать синтаксическую ошибку).
Когда вы запускаете приложение, оно видит, что код отличается, и выбирает новую / старую (другую) версию с горячей перезагрузкой кода - отсюда обновление страницы / прошивка.
Чтобы это исправить, вам нужно найти синтаксическую ошибку в вашем коде. Лучше всего просмотреть регистратор ADB или запустить с meteor run --verbose android-device ....
Это предоставит немного больше информации, такой как Uncaught exception: cannot read .. of null
ошибка типа ошибки.
Трудно сказать, в чем ошибка. Ошибка препятствует выполнению остальной части вашего кода. В производственном режиме весь проект представляет собой один файл JS. Если есть какая-либо ошибка на полпути файла, остальная часть файла не будет выполнена.
Также попробуйте загрузить <my_aws_ip>:3000
в вашем браузере и следите за ошибками JS в консоли JS.
Вы также можете запустить его локально с --production
локально моделировать среду сборки производства.
Включение автообновления, но без обновления страницы:
Reload._reload = function (options) {
console.log("Next load will load new version");
};