CircleCI + React Native + Xcode 10 - PullRequest
       88

CircleCI + React Native + Xcode 10

0 голосов
/ 29 января 2019

У меня есть приложение, работающее нормально с React Native 0.57.7 на CircleCI на Xcode 9. Но нам нужно увеличить версию Xcode до 10.1.0.

Но когда я переключаю его, Ci перестает работатьдаже при включении устаревшей системы (-UseNewBuildSystem=NO или -UseModernBuildSystem=0, передаваемой в build_ios_app Fastlane), я получаю сообщение об ошибке «Myapp.app/main.jsbundle not Существует».

▸ + echo 'error: File /Users/distiller/project/ios/build/Build/Intermediates.noindex/ArchiveIntermediates/Myapp/BuildProductsPath/Release-iphoneos/Myapp.app/main.jsbundle does not exist. This must be a bug with'
▸ error: File /Users/distiller/project/ios/build/Build/Intermediates.noindex/ArchiveIntermediates/Myapp/BuildProductsPath/Release-iphoneos/Myapp.app/main.jsbundle does not exist. This must be a bug with
▸ + echo 'React Native, please report it here: https://github.com/facebook/react-native/issues'
▸ React Native, please report it here: https://github.com/facebook/react-native/issues

1 Ответ

0 голосов
/ 31 января 2019

После нескольких часов, потраченных только на то, чтобы выяснить, что с ним происходит, я обнаружил проблему: сборка завершается сбоем молча, поскольку в образе докера для Xcode 10.1.0 в CircleCI отсутствуют некоторые зависимости, необходимые для сборки приложения с помощьюReact Native.

Ошибка просто гласила: «main.jsbundle не существует».Это происходит, когда xcode запускает react-native-cli bundle из react-native-xcode.sh файла.И это не говорит основную причину ошибки: watchman отсутствует в образе докера, используемом этой версией XCode.

Почему эти образы не имеют одинаковые установленные пакеты?Я не знаю.Я ожидал только те же самые установленные пакеты между образами.

Добавление brew install watchman заставляет CI снова проходить:

- run:
    name: "Install React Native dependencies"
    command: |
      brew update
      brew install watchman

Я бы хотел, чтобы react-native-xcode.sh мог вернуть корневую ошибку вместо простоmain.jsbundle does not exist

...