Приложение React Native сразу же аварийно завершает работу на iOS TestFlight

Я ненавижу задавать такой открытый вопрос, но я задаю его после 4 дней проб, ошибок и чистого отчаяния.

Мой вопрос:

Есть ли какие-то неочевидные «подводные камни» при сборке приложения React Native для TestFlight? Потому что мое приложение вылетает при запуске, но только в TestFlight. Отчеты о сбоях показывают только RCTFatal (скриншот ниже).

Моя сборка RN (0.54) включает CodePush для моего пакета JS, я использую схему выпуска / схему производственного сертификата при архивировании, следуя всем указаниям из CodePush/React Native. Приложение работает, но не в упаковке. Любая идея или лучшие догадки, в чем может быть дело?

Обновление:

Это выдает ошибку, когда я запускаю свою схему выпуска на симуляторе:

Обновление (2): беседа перемещена в чат: https://chat.stackoverflow.com/rooms/170610/discussion-on-question-by-user1791914-react-native-app-crashes-immediately-on-io

Обновление (3): эта проблема по-прежнему актуальна, но я открыл отдельный вопрос в качестве отладки, поскольку обнаружил дополнительную информацию: Ошибка пакета React Native для Release, Babel не работает?

React Native/Babel неправильно компилирует операторы распространения, так что это проблема конфигурации, которую нужно решить.

Unhandled JS Exception: Unexpected token '...'.

Является ли это ошибкой оператора распространения Babel?

введите здесь описание изображения


person user1791914    schedule 08.05.2018    source источник


Ответы (1)


Так что в конце концов это оказалось проблемой синтаксиса/js и не имело никакого отношения к моей сборке. У меня был экземпляр с

{...props.children} which should have been {props.children}

в одном из моих файлов jsx. Это приводило к действительно противоречивым результатам: в некоторых случаях приложение вылетало, а в других — нет. Это также привело меня к хитрой погоне за гусем, пытаясь перенастроить babel и мою сборку выпуска, поскольку сборка отладки молча обрабатывала ошибку.

person user1791914    schedule 12.05.2018
comment
пожалуйста, как вы пришли к ошибке? у меня такая же проблема и я не знаю как ее отследить. заранее спасибо - person leeCoder; 15.10.2018
comment
Отслеживание @leeCoder было для меня очень сложным. Я не знаю, был ли простой способ сделать это, но я настроил файл test-app.js, настроил приложение для запуска оттуда и импортировал один файл за раз, пока не смог определить, какой файл ( s) вызывали проблемы. Я не говорю, что это лучший способ, но он помог. - person user1791914; 15.10.2018