React-native: Después de actualizar a react-native 0.59, la compilación de iOS falla

Creado en 13 mar. 2019  ·  69Comentarios  ·  Fuente: facebook/react-native

🐛 Informe de error

Después de actualizar a react-native 0.59 e intentar compilar la aplicación para iOS, aparece el siguiente error:

No se puede encontrar el archivo de entrada de compilación: '/app/node_modules/react-native/ReactCommon/yoga/yoga/YGFloatOptional.cpp'

Lo que es extraño para mí es que tampoco puedo encontrar este archivo aquí en el maestro actual: react-native/tree/master/ReactCommon/yoga/yoga (solo YGFloatOptional.h )

Reproducir

Actualizamos un proyecto de tamaño medio de 0.57.7 → 0.59.

Comportamiento esperado

La compilación debería ejecutarse bien como lo hizo antes.

Medio ambiente

  React Native Environment Info:
    System:
      OS: macOS 10.14.3
      CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
      Memory: 2.95 GB / 32.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 10.15.1 - /var/folders/1r/ymkpxdlj21lb638kzp4jxvwm0000gn/T/yarn--1552463658468-0.20119758467048565/node
      Yarn: 1.13.0 - /var/folders/1r/ymkpxdlj21lb638kzp4jxvwm0000gn/T/yarn--1552463658468-0.20119758467048565/yarn
      npm: 6.4.1 - /usr/local/Cellar/node@10/10.15.1/bin/npm
      Watchman: 4.9.0 - /usr/local/bin/watchman
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
      Android SDK:
        API Levels: 23, 24, 25, 27, 28
        Build Tools: 23.0.1, 23.0.3, 24.0.1, 25.0.0, 27.0.3, 28.0.3
        System Images: android-24 | ARM 64 v8a, android-24 | ARM EABI v7a, android-24 | Intel x86 Atom_64, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom_64
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    npmPackages:
      react: 16.8.3 => 16.8.3
      react-native: 0.59.0 => 0.59.0
Bug Follow Up iOS Locked

Comentario más útil

Tengo el mismo problema ..., cada vez que hay algún problema con las actualizaciones en reaccionar nativo tan cansado ..

Todos 69 comentarios

Acabo de reproducir este problema con XCode: 10.1 y RN 0.59.0.

EDITAR 1 : Podría reproducir con la herramienta de compilación XCode UI; pero funciona bien con react-native run-ios (asegúrese de tener el último cli 2.x).
EDIT 2 : Me las arreglé para que funcione con XCode 10.1 habilitando la compilación heredada . Relacionado con # 19573

Hmm, acabo de actualizar de 0.58.4 a 0.59 , limpié los directorios de compilación en XCode y pude ejecutar tanto la depuración como el archivo de la aplicación. Estoy usando XCode 10.1.
Mi estrategia de actualización:

  1. Aumente las dependencias según la versión estable más reciente.
  2. Revise cada comparación en https://github.com/react-native-community/rn-diff-purge y aplíquela manualmente.

¿Me pregunto si todo podría funcionar para mí porque tenía trabajando 0.58.4 y acabo de aplicar cosas nuevas encima?

EDITAR: También ejecuté npm ci para eliminar mi node_modules (solo para asegurarme) y todavía pude construir la aplicación desde XCode 🤔

EDIT2: Y no tengo YGFloatOptional.cpp :
Screen Shot 2019-03-13 at 12 55 51

Tengo el mismo problema al actualizar de 0.57.8 -> 0.59.1.
Mirando un nuevo inicio 0.59.1 no hay archivo YGFloatOptional.cpp .

Agregue estas líneas a su Podfile:

  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

y correr

pod install

@jpudysz Sí, eso funcionó después de migrar a cocoapod y abrir el proyecto XCode con el archivo .xcworkspace .
Tuve que react-native unlink y react-native link bibliotecas puenteadas para que en su lugar usen Podfile .

¿Deberían dejar de utilizarse los enlaces heredados (sin cocoapod)?

@jpudysz también funcionó para mí. Seguramente esta no puede ser la solución adecuada, ¿verdad? Esto infla seriamente el proyecto. Pods/boost-for-react-native es 160.8MB.

Editar: Ok, realmente extraño, eliminé esos 3 pods, ejecuté Clean en Xcode e intenté compilar. Esta vez no recibí ningún error al compilar Yoga.

Gracias @jpudysz . Siguiendo su solución, aparece el siguiente error:
El archivo 'folly / Portability.h' no se encuentra en JSBundleType.h

¿Alguien sabe lo que está pasando?

Muchas gracias.

Después de probar lo que parece casi todo, la actualización estándar de RN, la herramienta de actualización de git, la aplicación del parche diff, terminé recreando un proyecto completamente nuevo y haciendo el trabajo extremadamente tedioso de reconstruir la base del código. Dicen que será mejor a partir del 0,59 en adelante ... ojalá tengan razón en eso

Acabo de actualizar de 0.59.0 a 0.59.1 y funcionó para mí
resolvió el problema del Yoga

Yo también me actualicé, pero hasta ahora no tuve suerte.

Yo tuve exactamente el mismo problema. El bueno y viejo rm -rf node_modules && npm i y limpiar las carpetas de compilación lo hicieron por mí

Después de usar npm audit fix , mi 'react-native' se actualiza automáticamente a la versión 0.59 y no puedo dejar de construir mi proyecto.
Solución : rebajar la versión a una inferior.
npm install react-native@<version>
ejemplo: npm install [email protected]

Intenté actualizar desde 0.58.4 manualmente (siguiendo los cambios de rn-diff-purge) pero también estoy enfrentando este problema con RN 0.59.0 o 0.59.1

Sí, teníamos YGFloatOptional.cpp hasta 0.58 https://github.com/facebook/react-native/blob/0.58-stable/ReactCommon/yoga/yoga/YGFloatOptional.cpp

¿Qué diablos está pasando aquí?

Editar
La solución de @jpudysz me lleva a otro error de archivo no encontrado 'folly/Portability.h' file not found

Tengo el mismo problema con 'folly / Portability.h' después de actualizar de 0.58.4 a 0.59.0 y 0.59.1

Lo que es extraño, es que XCode dice después de la compilación que no se encuentra Portability.h, pero en el editor, obtiene todos los tipos definidos en el encabezado ...

image

El archivo que no se compila es RCTJavasScriptLoader.mm en la biblioteca React.


CompileC /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.o /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target: React)
    cd /Users/xxx/Projects/xxx/ios/Pods
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++14 -stdlib=libc++ -fobjc-arc -fobjc-weak -fmodules -fmodules-cache-path=/Users/xxx/Projects/xxx/ios/build/xxx/ModuleCache.noindex -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/xxx/Projects/xxx/ios/build/xxx/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wdocumentation -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -DPOD_CONFIGURATION_DEBUG=1 -DDEBUG=1 -DCOCOAPODS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -mios-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability -fobjc-abi-version=2 -fobjc-legacy-dispatch -index-store-path /Users/xxx/Projects/xxx/ios/build/xxx/Index/DataStore -iquote /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-generated-files.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-own-target-headers.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-all-non-framework-target-headers.hmap -ivfsoverlay /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/all-product-headers.yaml -iquote /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/React-project-headers.hmap -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Products/Debug-iphonesimulator/React/include -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Private -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Private/React -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public/React -I/Users/xxx/Projects/xxx/ios/Pods/Headers/Public/yoga -I/Users/xxx/Projects/xxx/node_modules/react-native/ReactCommon -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/DerivedSources/x86_64 -I/Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/DerivedSources -F/Users/xxx/Projects/xxx/ios/build/xxx/Build/Products/Debug-iphonesimulator/React -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -include /Users/xxx/Projects/xxx/ios/Pods/Target\ Support\ Files/React/React-prefix.pch -MMD -MT dependencies -MF /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.d --serialize-diagnostics /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.dia -c /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm -o /Users/xxx/Projects/xxx/ios/build/xxx/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTJavaScriptLoader.o






In file included from /Users/xxx/Projects/xxx/node_modules/react-native/React/Base/RCTJavaScriptLoader.mm:12:
/Users/xxx/Projects/xxx/node_modules/react-native/ReactCommon/cxxreact/JSBundleType.h:

info fatal error:

'folly/Portability.h' file not found

 #include <folly/Portability.h>
          ^~~~~~~~~~~~~~~~~~~~~
 1 error generated.

Tengo el mismo problema ..., cada vez que hay algún problema con las actualizaciones en reaccionar nativo tan cansado ..

El archivo parece haberse eliminado del proyecto de yoga desde el 13 de diciembre de 2018 y "insertado" en yoga/YGFloatOptional.h : https://github.com/facebook/yoga/commit/96d93f29826257ff6e9bb6c19211adb423029c29

Supongo que la referencia a ReactCommon/yoga/yoga/YGFloatOptional.cpp ya no es necesaria.

Eliminar el caché y reconstruir el proyecto no funcionó para mí de inmediato.

Así que intenté actualizar a React Native 0.59.1 y luego reconstruir el proyecto. Tampoco funcionó.

Sin embargo, ENTONCES limpiar mis node_modules, caché y carpetas de compilación y reconstruir el proyecto, funcionó, usando:

rm -rf $TMPDIR/react-* && rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-* && watchman watch-del-all && npm cache clean --force && npm cache verify && rm -rf ios/build && rm -rf node_modules/ && npm i

Entonces, parece relacionado con la caché.

La actualización a React Native 0.59.1 tal vez no sea necesaria, creo que una parte del script funcionó para mí.

¡Espero que esto ayude a otros!

Me di por vencido, eliminé todos los enlaces a node_modules del archivo Pods, luego eliminé node_modules y construí el directorio y volví a instalar cualquier cosa y finalmente lo construí con éxito nuevamente.

Esto es tan agotador.

@jvandenaardweg Creo que tienes razón en que es un problema de almacenamiento en caché.

Para mí, lo que funcionó fue eliminar la carpeta de datos derivados de mi Xcode y reiniciar Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

Una vez que reinicié, intenté una compilación y falló y me pidió que cerrara y volviera a abrir mi espacio de trabajo de xcode. Una vez que hice eso, traté de construir de nuevo y funcionó.

Muy bien amigos, creo que este problema generalmente se trata de problemas de caché de compilación debido a la actualización (al leer las publicaciones); por lo tanto, si tiene problemas, creo que generalmente se puede solucionar mediante:

  • Limpieza de datos derivados en Xcode
  • rm -rf node_modules; rm -rf Pods luego reinstalar
  • Usando react-native upgrade x.y.z

Apuesto a que esto es prácticamente igual para todas las versiones. Tal vez buscaría crear un problema en react-native-cli para mejorar esto y tal vez ejecutar algunos de los comandos en sí.

¿Alguien tiene un paso de reproducción específico para esto?

También estaba viendo el error #include <folly/Portability.h> . El problema en mi caso eran subespecificaciones faltantes en el archivo pod.

Se construye bien para mí con:

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # needed for debugging
    'RCTImage',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    # Add any other subspecs you want to use in your project
  ]

  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # Third party deps podspec link
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

"Entre react-native 0.57.8 y 0.58.5 hay un gran cambio que se agregó en el proyecto Xcode es que debe agregar JavaScriptCore.Framework a las bibliotecas y marcos vinculados" - desde aquí

MÁS

@jvandenaardweg respuesta:

rm -rf $TMPDIR/metro-* && rm -rf $TMPDIR/haste-* && watchman watch-del-all && npm cache clean --force && npm cache verify && rm -rf ios/build && rm -rf node_modules/ && npm i

Hizo el trabajo por mí.

Es realmente frustrante, como han dicho otros, tener que adivinar qué es romper un código que estaba funcionando antes.

También en Android tuve que actualizar la versión Build Gradle para que funcione nuevamente.

necesitando adivinar

Sabemos que la actualización ha sido un problema duradero para la comunidad, por lo que a partir de la versión 0.59 hemos introducido un nuevo flujo a través de la nueva CLI .

Dicho esto, hemos estado escribiendo los cambios importantes en el registro de cambios y en la pestaña de versiones, por lo que no es necesario adivinar.

De todos modos, cerrando, ya que esto está claramente relacionado con la actualización; además, en general, puede usar rn-diff-repo para verificar todos los pasos necesarios al actualizar.

Hola,

Después de investigar mucho, me las arreglé para entender por qué tengo el problema. Limpiar la caché y todo no solucionó el problema para mí y todavía tenía el #include.

Estaba compilando bien para el proyecto React en mi proyecto, pero no pudo compilar para los Pods que tengo.

Incluso después de agregar los pods Folly / glog / DoubleConversion, seguía teniendo el problema.

Luego modifiqué el archivo React.podspecs para editar la subespecificación Core

Después de agregar la referencia de locura al pod_target_xcconfig, se estaba compilando sin ningún otro problema.

ss.pod_target_xcconfig  = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"  \"$(PODS_ROOT)/Folly\"" }

Y aquí está el podfile completo que tengo

ENV['COCOAPODS_DISABLE_STATS'] = 'true'

target 'CryptoReact' do
  platform :ios, '9.0'

  pod 'CodePush', :path => '../node_modules/react-native-code-push'
  pod 'Firebase/Core', '~> 5.14.0'


  pod 'react-native-sqlite-storage', :path => '../node_modules/react-native-sqlite-storage'
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/yoga.podspec'
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  pod 'react-native-randombytes', :path => '../node_modules/react-native-randombytes'
  pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
  pod 'react-native-splash-screen', :path => '../node_modules/react-native-splash-screen'
  pod 'RNLocalize', :path => '../node_modules/react-native-localize/ios'
  pod 'react-native-camera', :path => '../node_modules/react-native-camera'
  pod 'RNPermissions', :path => '../node_modules/react-native-permissions'
  pod 'react-native-keep-awake', :path => '../node_modules/react-native-keep-awake'
  pod 'SwiftyJSON', '4.2.0'
  pod 'Charts', '3.1.1' 
  pod 'Fabric', '~> 1.9.0'
  pod 'Crashlytics', '~> 3.12.0'
  pod 'Firebase/Performance', '~> 5.14.0'
  pod 'Firebase/Auth', '~> 5.14.0'
  pod 'lottie-ios', :path => '../node_modules/lottie-ios'
  pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
  pod 'react-native-webview', :path => '../node_modules/react-native-webview'
  pod 'RNScreens', :path => '../node_modules/react-native-screens'
  pod 'ReactNativeExceptionHandler', :podspec => '../node_modules/react-native-exception-handler/ReactNativeExceptionHandler.podspec'
  pod 'RCTRestart', :path => '../node_modules/react-native-restart/ios'
  pod 'react-native-version-number', :path => '../node_modules/react-native-version-number'
  pod 'RNBackgroundFetch', :path => '../node_modules/react-native-background-fetch'

  pod 'React', :path => '../node_modules/react-native', :subspec => [
    'Core',
    'ART',
    'cxxreact',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # needed for debugging
    'RCTImage',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    'RCTPushNotification',
    # Add any other subspecs you want to use in your project
  ]
end

swift4 = ['Charts']

post_install do |installer|
installer.pods_project.targets.each do |target|
  target.build_configurations.each do |config|
    if swift4.include?(target.name)
      config.build_settings['SWIFT_VERSION'] = '4.1'
    end
  end
end
end

Estoy en la misma situación. He actualizado de 0.57 a 0.59 después de react native diff y todo funcionó perfectamente hasta que actualicé de 0.58.6 a 0.59.

He intentado todo en este hilo sin suerte, el error de archivo 'folly / Portability.h' no encontrado simplemente no quiere desaparecer.

Retroceder a 0.58.6 funciona perfectamente, pero en el momento en que actualizo a 0.59.0 o 0.59.1 aparece el error.

Editar: encontré el archivo en node_modules / react-native / third-party / folly-2018.10.22.00 / folly / Portability.h pero todavía dice que no está allí.

Me doy cuenta de que mi publicación fue muy poco clara ... Lo siento. Aquí está el archivo diff que debería hacerlo más explícito para las personas que tienen problemas con 'folly / Portability.h'

Intente realizar la siguiente modificación en el archivo nodes_modules / react-native / React.podspec, ¡al menos en mi caso ha funcionado! Ahora puedo compilar mi proyecto y ejecutarlo sin problemas.

diff --git a/node_modules/react-native/React.podspec b/node_modules/react-native/React.podspec

s.subspec "Core" do |ss|
[...]
     ss.header_dir           = "React"
     ss.framework            = "JavaScriptCore"
     ss.libraries            = "stdc++"
-    ss.pod_target_xcconfig  = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"" }
+    ss.pod_target_xcconfig  = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"  \"$(PODS_ROOT)/Folly\"" }
   end

Haciendo lo que dijo @aaska y agregando
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

al Podfile y la instalación de pod funcionó para mí.

Después de usar los consejos de @jpudysz , @jvandenaardweg y @johnryan , también se
¡Gracias chicos!

@ th3ac3 que me resolvió el problema. ¡Gracias!

ninguno de ellos funcionó

@jvandenaardweg Creo que tienes razón en que es un problema de almacenamiento en caché.

Para mí, lo que funcionó fue eliminar la carpeta de datos derivados de mi Xcode y reiniciar Xcode.
rm -rf ~/Library/Developer/Xcode/DerivedData

Una vez que reinicié, intenté una compilación y falló y me pidió que cerrara y volviera a abrir mi espacio de trabajo de xcode. Una vez que hice eso, traté de construir de nuevo y funcionó.

Gracias, hice eso y funcionó de nuevo.

Entonces, después de seguir la actualización diff a 59.4 (usando rn-diff-purge ), todavía tenía los mismos problemas que todos aquí ( YGFloatOptional.cpp error primero, y luego folly/Portability.h error). Sin embargo, ninguna de las soluciones funcionó por sí sola, así que esto es lo que hice para resolver los problemas:

# Clean caches/build folder/existing pods
rm -rf node_modules
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ios/build
rm -rf ios/Pods

# Reinstall deps
npm install

Luego actualicé mi Podfile a lo siguiente:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'CityChallenge' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  pod 'React', :path => '../node_modules/react-native', subspecs: [
    # Comment out any unneeded subspecs to reduce bundle size.
    'Core',
    'CxxBridge', # --> I was missing Cxxbridge here, may have resolved the issue for me as well
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTBlob',
    'RCTCameraRoll',
    'RCTGeolocation',
    'RCTImage',
    'RCTNetwork',
    'RCTPushNotification',
    'RCTSettings',
    'RCTTest',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
    'RCTLinkingIOS'
  ]

  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # Third party --> This bit is also new
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'


end

Después de eso, reinstalé las vainas.

cd ios
pod install

Solo entonces el proyecto comenzó a construirse con éxito nuevamente.

En mi caso, me olvidé de hacer el paso:

si es un desarrollador de iOS, deberá vincular manualmente JavaScriptCore.framework al actualizar; esto se puede hacer a través de Xcode y siguiendo los pasos que se muestran aquí.

ejemplo

después de hacer eso, xcode simplemente compila bien

Ninguno de los anteriores funcionó para mí

mira esto: https://github.com/facebook/react-native/issues/18408#issuecomment -386696744
me resolvió el problema.

poner esto en la consola -> xcrun -k --sdk iphoneos --show-sdk-path
si la respuesta es
xcrun: _ error: no se puede localizar el SDK "iphoneos"
xcrun: error: no se puede localizar el SDK "iphoneos"
xcrun: error: no se puede buscar el elemento 'Ruta' en el SDK 'iphoneos'

luego ponga este sudo xcode-select --switch /Applications/Xcode.app

Luego instale pod nuevamente

Esta respuesta funcionó para mí. Además de todas las cosas mencionadas anteriormente en este hilo, necesitaba volver a abrir la terminal que estaba ejecutando mi empaquetadora de metro.

rebajar a "react-native": "0.57.4", de lo que funciona de nuevo

rebajar a "react-native": "0.57.4", de lo que funciona de nuevo

No creo que rebajar a esta versión sea la mejor manera @miukki. Esta versión (0.59) brinda soporte de 64 bits para aplicaciones de Android y lo necesita como un requisito futuro para publicar aplicaciones (información aquí ).

Oye, después de abordar todas las soluciones anteriores, encontré otro error

ld: advertencia: directorio no encontrado para la opción '-F / Users / pumeo / Library / Developer / Xcode / DerivedData / GreenPlanet-cekcooliietupofcqlsnkupeolal / Build / Products / Debug-iphonesimulator / React'
ld: marco no encontrado Reaccionar
clang: error: el comando del vinculador falló con el código de salida 1 (use -v para ver la invocación)

cuando inserté el post_install

alguien puede ayudar por favor?
Estoy usando hackintosh

@ Pumeo1010 , manténgase en el tema.

Sobre el tema: si se resuelve este problema, ¿cuál es la solución? Probé todo lo anterior y lo hice funcionar de alguna manera (no sé qué hizo el truco). Ahora tuve que reconstruir y me encontré con el mismo problema una vez más y lo que sea que intente ya no puede funcionar.

Actualización: ¡finalmente volvió a funcionar! No estoy del todo seguro, pero creo que eliminar los datos derivados de Xcode, eliminar Podfile.lock, eliminar / reinstalar pods-dir, limpiar la carpeta de compilación de Xcode y reiniciar el sistema terminó haciendo el truco.

Estoy intentando actualizar React Native casi dos días de 0.57.8 a 0.59.9. Probé todas las soluciones anteriores a este comentario, pero todavía tengo los mismos errores. Símbolos duplicados, encabezados no encontrados, YGFloatOptional.cpp no ​​encontrado ... Creé un nuevo proyecto React Native y luego copié los archivos de mi proyecto existente al nuevo proyecto y apliqué las diferencias con la ayuda de rn-diff-purge . De nuevo, con esta forma también obtuve muchos errores de compilación diferentes y finalmente me di por vencido. Amo v0.57.8

Entonces, después de seguir la actualización diff a 59.4 (usando rn-diff-purge ), todavía tenía los mismos problemas que todos aquí ( YGFloatOptional.cpp error primero, y luego folly/Portability.h error). Sin embargo, ninguna de las soluciones funcionó por sí sola, así que esto es lo que hice para resolver los problemas:

# Clean caches/build folder/existing pods
rm -rf node_modules
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ios/build
rm -rf ios/Pods

# Reinstall deps
npm install

Luego actualicé mi Podfile a lo siguiente:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'CityChallenge' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  pod 'React', :path => '../node_modules/react-native', subspecs: [
    # Comment out any unneeded subspecs to reduce bundle size.
    'Core',
    'CxxBridge', # --> I was missing Cxxbridge here, may have resolved the issue for me as well
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTBlob',
    'RCTCameraRoll',
    'RCTGeolocation',
    'RCTImage',
    'RCTNetwork',
    'RCTPushNotification',
    'RCTSettings',
    'RCTTest',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
    'RCTLinkingIOS'
  ]

  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # Third party --> This bit is also new
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'


end

Después de eso, reinstalé las vainas.

cd ios
pod install

Solo entonces el proyecto comenzó a construirse con éxito nuevamente.

@Hless Hola. Probé tu solución. Aquí está mi Podfile

target '..' do
   # this is very important to have!
   rn_path = '../node_modules/react-native'
   pod 'yoga', path: "#{rn_path}/ReactCommon/yoga/yoga.podspec"
   pod 'React', path: rn_path, subspecs: [
     'Core',
     'CxxBridge',
     'RCTActionSheet',
     'RCTAnimation',
     'RCTGeolocation',
     'RCTImage',
     'RCTLinkingIOS',
     'RCTNetwork',
     'RCTSettings',
     'RCTText',
     'RCTVibration',
     'RCTWebSocket'
   ]

   pod 'RNImageCropPicker', :path =>  '../node_modules/react-native-image-crop-picker'

   pod 'AppCenter/Crashes', '~> 1.12.0'
   pod 'AppCenter/Analytics', '~> 1.12.0'
   pod 'AppCenterReactNativeShared', '~> 1.11.0'
   pod 'Fabric'
   pod 'Crashlytics'
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  platform :ios, '9.0'
  pod 'react-native-webview', :path => '../node_modules/react-native-webview'
  pod 'react-native-document-picker', :path => '../node_modules/react-native-document-picker'

  pod 'react-native-video', :path => '../node_modules/react-native-video'

  pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'

  pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'

  pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'

  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end
  end
end

Pero esta vez la compilación falla debido a un error de símbolos duplicados. Encontré esta solución y ahora se construye con éxito. Pero ahora tengo otro problema. Una vez que ejecuto la aplicación, se bloquea inmediatamente. Encontré el motivo del error en el área de depuración de Xcode y es
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCTRootView reactTag]: unrecognized selector sent to instance 0x7fbf02c05530'
la solución a este problema es la opuesta a la otra solución. Qué mala historia de actualización. :(

Finalmente construí con éxito el proyecto de iOS y lo ejecuté en el simulador sin ningún error después de trabajar duro en el progreso de la actualización. Primero apliqué diffs con la ayuda de rn-diff-purge, luego apliqué la solución esta solución , los arreglé y ahora el proyecto funciona correctamente.

Resuelto con lo siguiente:

rm -rf node_modules
rm -rf ios/Pods
rm ios/Podfile.lock 
rm -rf ~Library/Developer/Xcode/DerivedData

Luego reinstalé mis dependencias (npm y pod) y funcionó :)

rm -rf ~ Biblioteca / Desarrollador / XCode / DerivedData

la línea de la derecha será: rm -rf ~/Library/Developer/Xcode/DerivedData

Cada vez que me encuentro con un problema de tirón de pelo con RN que me da un mensaje de error sin sentido, me lanzo a una búsqueda desesperada de github para encontrar soluciones. La mayoría de las veces, la solución es eliminar caché, eliminar datos derivados, volver a abrir Xcode, borrar carpetas de compilación, etc. A lo largo de los años, he creado este script bash que agregué como un script npm en mi package.json. Ahora mi primera solución goto para la mayoría de los problemas es npm run clear .

// package.json
{
  "scripts": {
    "clear": ". scripts/Clear.sh",
  }
}
// scripts/Clear.sh
#!/bin/bash

echo "rm -rf ios/build..."
rm -rf ios/build

echo "rm -rf android/app/build..."
rm -rf android/app/build

echo "Removed all Xcode derived data..."
rm -rf ~/Library/Developer/Xcode/DerivedData

echo "rm -rf lib... (for Flow)"
rm -rf lib

echo "watchman watch-del-all..."
watchman watch-del-all

echo "rm -rf node_modules..."
rm -rf node_modules

echo "npm install..."
npm install

echo "rm -rf $TMPDIR/react-*..."
rm -rf $TMPDIR/react-*

echo "rm -rf $TMPDIR/haste-map-react-native-packager-*..."
rm -rf $TMPDIR/haste-map-react-native-packager-*

PD. Y también me resolvió este problema: D

solo pod install funcionó para mí

Por favor. Xcode 10.1 degradado

Otro react-native link me ayudó. :(

React Native es insostenible, se ofrecen 100 resoluciones por cada error que alguien encuentre. Un cambio y todo el proceso de compilación, el texto estándar y la razón para usar react native se desmoronan. ¿Cómo pueden las empresas agregar realmente este proceso de desarrollo a una cartera de productos? ¡¡¡¡ridículo!!!!

Dicen que será mejor a partir del 0,59 en adelante ... ojalá tengan razón en eso

@philipaarseth Espero que te hayas comido tus palabras cuando salió 0.60 😆

He visto esto en otros hilos antes, pero ejecutar lo siguiente resolvió el problema para mí:

cd node_modules/react-native/scripts
./ios-install-third-party.sh

Pensé que esto se había solucionado en 0.59 o antes y recuerdo haberlo visto ejecutándose automáticamente en algunas compilaciones, pero parece que todavía hay casos en los que falta.

Definitivamente vale la pena incluirlo en la sección de solución de problemas de su proyecto, ya que esta no es la primera vez que veo que esto sucede.

Ejecute este comando: $ conda deactivate

@jpudysz gracias, me funciona. pero ¿por qué el error de construcción de rn yoga tiene Relationshop con Folly / glog / doubleConversion?

mi registro de errores es:
Los siguientes comandos produjeron problemas con el analizador:
Analizar /Users/superqa/jenkins/workspace/xxxxx-xxxx-iOS-new/node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp normal arm64
Analizar Base / RCTModuleMethod.mm brazo normal64
(2 comandos con problemas con el analizador)

Android funciona realmente perfectamente, solo iOS ... :-(

Desafortunadamente, la única solución prometedora podría ser la degradación de la versión RN

Se vuelve bastante difícil cuando hay muchas dependencias de terceros.

en mi caso, Xcode acaba de hacer una actualización automática y produjo ese problema.
lo que hice para resolver el problema fue:
cd ios
rm -fr Pods
rm Podfile.lock
instalación de pod

reinstalar los Pods y Podfile resolvió mi problema

Eliminar datos derivados
cd ios
eliminar Pods y Podfile.lock
instalación de pod

He realizado todos los pasos anteriores, he conseguido que la compilación funcione y ahora aparece este error. FWIW Estoy actualizando desde Xcode 10.1 -> 11.1 Y estoy actualizando react native desde 0.57.8 -> 0.59.9

dyld: Library not loaded: @rpath/XCTest.framework/XCTest
  Referenced from: /Users/par/Library/Developer/CoreSimulator/Devices/2B68242E-D2AF-49A4-9AEA-C320820D8D2F/data/Containers/Bundle/Application/E665681B-C213-42C0-9A51-746B4CA17599/Kismet.app/Kismet
  Reason: image not found

editar: eliminé RCTTest del podfile y fue bueno después de eso.

También estaba viendo el error #include <folly/Portability.h> . El problema en mi caso eran subespecificaciones faltantes en el archivo pod.

Se construye bien para mí con:

  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # Include this for RN >= 0.47
    'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # needed for debugging
    'RCTImage',
    'RCTWebSocket', # Needed for debugging
    'RCTAnimation', # Needed for FlatList and animations running on native UI thread
    # Add any other subspecs you want to use in your project
  ]

  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # Third party deps podspec link
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

Tuve un problema para instalar glog, terminé teniendo que emitir este comando sudo xcode-select --switch /Applications/Xcode.app/ bastante seguro porque estaba ejecutando Xcode desde un directorio diferente, luego lo moví a mi directorio / Aplicaciones, y las herramientas estaban en mal estado .

@jenskuhrjorgensen, su rm está eliminando todo el $ TMPDIR debido a un espacio que tiene allí.

@ jduffy7 Eso es probablemente un poco exagerado 😄 ¡Gracias, ha sido corregido!

@jenskuhrjorgensen ¡¡¡¡ Gracias !!!!!

Ejecutar pod update funcionó para mí.

Cualquier actualización .. ?

Las soluciones anteriores no funcionaron, las siguientes ayudaron a que mi proyecto se construyera nuevamente.

cd ios
pod repo update
pod update

Después de ejecutar estos comandos, pude construir en xcode pero sin usar react-native run-ios . Luego ejecuté estos comandos (gracias https://github.com/facebook/react-native/issues/23886#issuecomment-509528212):

rm -rf ios/build
rm -rf ~/Library/Developer/Xcode/DerivedData
watchman watch-del-all
rm -rf node_modules
npm install

lo que me ayudó a construir usando react-native run-ios nuevamente.

@khanguslee lo hago pero lamentablemente no se construirá

y obtuve este error

* CONSTRUCCIÓN FALLIDA *

Los siguientes comandos de compilación fallaron:
PhaseScriptExecution [CP] Comprobar pods Manifest.lock /../ios/build/music/Build/Intermediates.noindex/music.build/Debug-iphonesimulator/music.build/Script-C5D676D55145145333E00AC9.sh
(1 falla)

Mostrar todos los mensajes
: -1: La caja de arena no está sincronizada con Podfile.lock. Ejecute 'pod install' o actualice su instalación de CocoaPods.

El sandbox no está sincronizado con Podfile.lock. Ejecute 'pod install' o actualice su instalación de CocoaPods.

Una búsqueda rápida en Google con su mensaje de error me da una solución aquí.

¿Fue útil esta página
0 / 5 - 0 calificaciones