Почему сборка команды response-native run-ios завершается ошибкой после обновления до версии 0.63.3?

Я только что обновился до RN v0.63.3. У меня возникли проблемы с react-native run-ios в предыдущей версии для реакции после изменения имени приложения, и проект / схемы имели разные имена, эта проблема так и не была решена, все сказали, что нужно просто обновить.

теперь на v0.63.3 по-прежнему существует проблема с ошибкой сборки после react-native run-ios. на этот раз ошибка:

** СБОЙ СОЗДАТЬ **

Следующие команды сборки завершились неудачно: CompileC /Users/vorousjames/Library/Developer/Xcode/DerivedData/?OLD_NAME›-gdmnlxiprekjqhfiueouiidqhqnl/Build/Intermediates.noindex/?NEW_NAME›.build/Deb›. normal / x86_64 / AppDelegate.o /Users/Desktop/Development/App/iOS/?OLD_NAME›/AppDelegate.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (1 сбой)

Нет НИКАКОЙ проблемы с созданием / запуском изнутри Xcode. ТОЛЬКО с react-native run-ios

РЕДАКТИРОВАТЬ: Я подумал, что, возможно, возникла проблема с тем фактом, что я установил cli глобально, так как я просто звонил react-native run-ios. Я считаю, что использует глобальную установку. так как он устарел, я удалил его глобально и попытался использовать пакет сообщества с npx react-native run-ios. теперь он дает еще одну ошибку comileC, но другую.

** СБОЙ СОЗДАТЬ **

Следующие команды сборки завершились неудачно: CompileC /Users/Library/Developer/Xcode/DerivedData/App-gdmnlxiprekjqhfiueouiidqhqnl/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RNFirebagingNormulator/RNFirebagingNormal/RNFirebagingBase / Users / Desktop / Development / App / node_modules / react-native-firebase / ios / RNFirebase / messaging / RNFirebaseMessaging.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler CompileC / Users / Library / Developer /Xcode/DerivedData/App-gdmnlxiprekjqhfiueouiidqhqnl/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RNFirebase.build/Objects-normal/x86_64/RNFirebase/products/Desktop_64/RNFirebase/products/Desktop_64/RNFirebase/Description/Desktop_firebase/Desktop_64/RNFirebase/Description/RNFirebase/ -firebase / ios / RNFirebase / firestore / RNFirebaseFirestore.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (2 сбоя)

Это полностью убивает мою способность быстро перебирать, любые советы приветствуются

response-native: 0.63.3 react-native-cli (глобальный): 2.0.1 react-native-community / cli: ^ 4.8.0 Xcode: 12.0.1 iOS: 14.0.1

ОБНОВЛЕНИЕ:

package.json:

{
    "name": "Aflare",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "android": "react-native run-android",
        "ios": "react-native run-ios",
        "start": "react-native start",
        "test": "jest",
        "lint": "eslint ."
    },
    "dependencies": {
        "@react-native-community/cli": "^4.8.0",
        "@react-native-community/clipboard": "^1.2.2",
        "algoliasearch": "^3.16.0",
        "appcenter": "3.1.1",
        "appcenter-analytics": "3.1.1",
        "appcenter-crashes": "3.1.1",
        "axios": "^0.19.2",
        "moment": "^2.24.0",
        "moment-timezone": "^0.5.27",
        "prop-types": "^15.7.2",
        "react": "^16.13.1",
        "react-native": "^0.63.3",
        "react-native-agora": "^3.1.3",
        "react-native-algolia-dropdown": "^1.6.0",
        "react-native-calendars": "^1.220.0",
        "react-native-chart-kit": "^4.3.0",
        "react-native-code-push": "^6.0.0",
        "react-native-extended-stylesheet": "^0.12.0",
        "react-native-firebase": "^5.6.0",
        "react-native-gesture-handler": "^1.5.2",
        "react-native-image-crop-picker": "^0.26.1",
        "react-native-material-dropdown": "^0.11.1",
        "react-native-reanimated": "^1.4.0",
        "react-native-responsive-screen": "^1.4.1",
        "react-native-safe-area-context": "^0.6.2",
        "react-native-screens": "^1.0.0-alpha.23",
        "react-native-snap-carousel": "^3.8.4",
        "react-native-splash-screen": "^3.2.0",
        "react-native-svg": "^9.13.6",
        "react-native-view-shot": "^3.1.2",
        "react-native-webview": "^9.4.0",
        "react-navigation": "^4.0.2",
        "react-navigation-drawer": "^2.3.3",
        "react-navigation-stack": "^1.10.3",
        "react-redux": "^7.1.3",
        "redux": "^4.0.4",
        "redux-persist": "^6.0.0",
        "redux-thunk": "^2.3.0",
        "rn-fetch-blob": "^0.11.2"
    },
    "devDependencies": {
        "@babel/core": "7.8.4",
        "@babel/runtime": "7.8.4",
        "@react-native-community/eslint-config": "1.1.0",
        "@types/react": "^16.9.46",
        "@types/react-dom": "^16.9.8",
        "babel-jest": "^25.1.0",
        "eslint": "6.7.2",
        "jest": "^25.1.0",
        "metro-react-native-babel-preset": "0.59.0",
        "react-test-renderer": "16.13.1"
    },
    "jest": {
        "preset": "react-native"
    }
}

После предложения / процесса @Florin теперь есть 14 ошибок сборки (из-за сборки с npx react-native run-ios):

** СБОЙ СОЗДАТЬ **

Не удалось выполнить следующие команды сборки: CompileSwift normal x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCTAgora/Base/BeanCovertor.swift CompileSwift normal x86_64 / Users / Desktop / Development / App / node_modules / react -native-agora / ios / RCTAgora / Base / Callback.swift CompileSwift обычный x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCTAgora/Base/Extensions.swift CompileSwift normal x86_64 / Users / Desktop /Development/App/node_modules/react-native-agora/ios/RCTAgora/Base/MediaObserver.swift CompileSwift normal x86_64 / Users / Desktop / Development / App / node_modules / react-native-agora / ios / RCTAgora / React / PromiseCallback. swift CompileSwift нормальный x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCTAgora/React/RCTAgoraRtcChannelModule.swift CompileSwift normal x86_64 / Users / Desktop / Development / App / node_modules / response ios / RCTAgora / React / RCTAgoraRtcEngineModule.swift CompileSwift normal x86_64 / Users / Desktop / Developm ent / App / node_modules / response-native-agora / ios / RCTAgora / React / RCTAgoraRtcSurfaceViewManager.swift CompileSwift нормальный x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCRTAgora/Bhannn CompileSwift нормальный x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCTAgora/Base/RtcChannelEvent.swift CompileSwift normal x86_64 / Users / Desktop / Development / Slide / Slide / node_modules / react-native-ago /ios/RCTAgora/Base/RtcEngine.swift CompileSwift обычный x86_64 /Users/Desktop/Development/App/node_modules/react-native-agora/ios/RCTAgora/Base/RtcEngineEvent.swift CompileSwift обычный рабочий стол x86_64 / Users /node_modules/react-native-agora/ios/RCTAgora/Base/RtcSurfaceView.swift CompileC /Users/Library/Developer/Xcode/DerivedData/"Old_App_Name›-gdmnlxiprekjqhfiueouiidqones/buter-index.html/Butils/Butils/Butils/Butils/Butils/Butils/Buyidqones/buyde/Butils/Media RNFirebase.build/Objects-normal/x86_64/RNFirebaseMessaging.o / Users / Desktop / Development / App / node_module s / response-native-firebase / ios / RNFirebase / messaging / RNFirebaseMessaging.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (14 сбоев)

полный вывод сборки, возвращающийся в терминал вискозы, находится здесь: https://pastebin.com/XenEszNe

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


person Jim    schedule 09.11.2020    source источник
comment
попробуйте обновить собственный cli реакции, github.com/react-native-community / cli # update-the-cli   -  person nazmul    schedule 09.11.2020
comment
im в 4.8.0, а GitHub заявляет, что совместимость с RN v0.63 - это react-native-community / cli ^ 4.0.0, так почему именно вы советуете сделать это, учитывая, что я уже использую совместимую версию? @nazmul   -  person Jim    schedule 09.11.2020
comment
на самом деле, хотя вы установили обновленную версию react native cli, иногда, если вы обновляете любую старую версию проекта react native, она по-прежнему использует версию cli, с которой он был создан. github.com/react-native-community/cli/issues/1208, возможно, эта ссылка может дать вам некоторую полезную информацию.   -  person nazmul    schedule 09.11.2020
comment
где я могу найти ту версию, с которой он был создан, зависимости от реакции в package-lock.json? Я создал проект с устаревшим глобальным react-native-cli   -  person Jim    schedule 09.11.2020
comment
Я бы попробовал создать новый проект в 0.63.3, протестировать его, а затем скопировать файлы вашего приложения в новый проект.   -  person Yossi    schedule 18.11.2020


Ответы (2)


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

  • остановить сервер JS
  • r удалить производные данные в Xcode
  • запустить pod install
  • переустановите node_modules (необязательно)
  • npx watchman watch-del-all && yarn start --reset-cache
  • сборка с помощью консоли и сборка с использованием Xcode

На этом этапе обе команды должны иметь одинаковый результат. Если вы получили сообщение об ошибке, внимательно прочитайте все сообщение об ошибке, есть много шансов заметить проблему с модулем, скрытым глубоко в журнале ошибок.

Если внимательно присмотреться к сообщению об ошибке, оно выглядит как что-то, связанное либо с производными данными / кешем, либо с некоторыми модулями, которые не обновляются.

Если проблема все еще возникает, приложите к своему вопросу:

  • package.json содержание,
  • полное сообщение об ошибке и
  • содержимое Xcode- ›BuildPhases bundle react-native code and images скрипта.

ОБНОВЛЕНИЕ:

Если после обновления до 0.63.3 вы заметили много проблем, связанных с зависимостями React, убедитесь, что файл pod чист и содержит только ваши особые зависимости (те, которые не поддерживают автоматическое связывание, или те, для которых их документация указывает, что они должны быть добавлены. в Podfile) и не считая React. Должно получиться так:

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '10.0'

target 'YourRnApp' do
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  target 'YourRnAppTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  use_flipper!
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'YourRnApp-tvOS' do
  # Pods for RnDiffApp-tvOS

  target 'RnDiffApp-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

Больше информации здесь:

https://react-native-community.github.io/upgrade-helper/?from=0.61.5&to=0.63.3

После очистки Podfile очистите кеш, запустите pod install и выполните повторную сборку.

На данный момент большинство ошибок должно исчезнуть.

Проверьте в Xcode все оставшиеся ссылки ручной библиотеки, которые не нужны, и удалите их (те, которые поддерживают автоматическое связывание) и заново соберите.

Если по-прежнему не работает, проверьте project.pbxproj в помощнике по обновлению RN.

Возьмите ошибки одну за другой. Большинство из них должно быть исправлено с помощью помощника по обновлению RN и других ответов Stackoverflow.

person Florin Dobre    schedule 12.11.2020
comment
спасибо за ответ, я попробовал ваше предложение и обновил детали вопроса @FlorinDobre - person Jim; 12.11.2020

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

Если вы хотите использовать флиппер, вы можете воспользоваться этим решением прямо сейчас:

  require_relative '../node_modules/react-native/scripts/react_native_pods'
  require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

  platform :ios, '10.0'

  target 'pokeDex' do
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  target 'pokeDexTests' do
      inherit! :complete
      # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  # Important to use at this momemt version 2.30
  use_flipper!({ 'Flipper-Folly' => '2.3.0' })
  post_install do |installer|
      flipper_post_install(installer)
  end
  end

  target 'pokeDex-tvOS' do
  # Pods for pokeDex-tvOS

  target 'pokeDex-tvOSTests' do
      inherit! :search_paths
      # Pods for testing
  end
  end

В противном случае вы можете прокомментировать скрипт установки use_flipper следующим образом:

  require_relative '../node_modules/react-native/scripts/react_native_pods'
  require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

  platform :ios, '10.0'

  target 'pokeDex' do
  config = use_native_modules!

  use_react_native!(:path => config["reactNativePath"])

  target 'pokeDexTests' do
      inherit! :complete
      # Pods for testing
  end

  # Enables Flipper.
  # lines commented
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  # use_flipper!
  # post_install do |installer|
  #   flipper_post_install(installer)
  # end
  end

  target 'pokeDex-tvOS' do
  # Pods for pokeDex-tvOS

  target 'pokeDex-tvOSTests' do
      inherit! :search_paths
      # Pods for testing
  end
  end
person Orlando Garcia    schedule 12.03.2021