Después de leer https://reactnative.dev/docs/environment-setup , creé un proyecto nativo de reacción usando npx react-native init *** .
Fue exitoso, así que traté de ejecutar el proyecto usando npx react-native run-ios y obtuve el siguiente error:
** BUILD FAILED ** The following build commands failed: CompileC /Users/loser/Library/Developer/Xcode/DerivedData/test0205-dasunahpjpavelgmslwgmvjhesxy/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper.build/Objects-normal/x86_64/FlipperRSocketResponder.o /Users/loser/Documents/projects/test0205/ios/Pods/Flipper/xplat/Flipper/FlipperRSocketResponder.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (1 failure)¡Desde mmemories, es necesario ejecutar el comando pod install antes!
Esto parece ser un problema en react-native 0.63, intente iniciar el proyecto con --version 0.62 y debería funcionar hasta que solucionen el error
Es debido a use_flipper en Podfile para el proyecto iOS.
use_flipper! Entonces, necesitaba indicar la versión Flipper-Folly con use_flipper como
use_flipper!({ 'Flipper-Folly' => '2.3.0' })Funcionó perfectamente después de ese cambio.
Versión de reacción -0. 63 Sigo enfrentando el mismo problema al iniciar un nuevo proyecto para iOS en Mac. He seguido estos pasos dados a continuación, pero sigue el problema
npx react-native init xxxx cd xxxx npx react-native run-ios pod installDespués de hacer esto, obtuve el siguiente error.
** BUILD FAILED ** The following build commands failed: CompileC /Users/apple/Library/Developer/Xcode/DerivedData/profirst-bbfobfkgbfqalecezvbonnkwcffv/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Flipper.build/Objects-normal/x86_64/FlipperRSocketResponder.o /Users/apple/profirst/ios/Pods/Flipper/xplat/Flipper/FlipperRSocketResponder.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (1 failure) Más tarde he cambiado en el archivo pod use_flipper! to use_flipper!({ 'Flipper-Folly' => '2.3.0' }) , pero sigo teniendo el mismo problema.
Aquí hay una captura de pantalla del problema.
Siguiendo la respuesta de Everest Climber
¡Cambia use_flipper! para usar_flipper!({ 'Flipper-Folly' => '2.3.0' })
Esto funcionó para mí. Con suerte, también funciona para ti.
use_flipper! para use_flipper!({ 'Flipper-Folly' => '2.3.0' })pod installPude resolver este problema después de deshabilitar Flipper en ios/Podfile.
¡Para mí, deshabilitar flipper de Podfile funciona!
updated Podfile
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 'ReactNativeApp' do config = use_native_modules! use_react_native!(:path => config["reactNativePath"]) target 'ReactNativeAppTests' 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. # use_flipper!({ 'Flipper-Folly' => '2.3.0' }) # post_install do |installer| # flipper_post_install(installer) # end end target 'ReactNativeApp-tvOS' do # Pods for ReactNativeApp-tvOS target 'ReactNativeApp-tvOSTests' do inherit! :search_paths # Pods for testing end endcd ios && pod installcd .. && npx react-native run-iosSí, Everest Climber tiene razón. Se rompió después de que actualicé mi react-native-CLI. Es por la nueva versión de use_flipper .
Pasos para solucionarlo:
> Open Podfile for the iOS project. > Replace `use_flipper!` with `use_flipper!({ 'Flipper-Folly' => '2.3.0' })`. > Then you must remove both Pods directory and Podfile.lock. > open terminal and go to iOS project directory. > Do `pod install`.Me ha funcionado perfectamente.
Esto se debe a que Flipper-Folly se rompió en la última versión de Catalina.
Hasta que esto se solucione, lo mejor que puedes hacer es forzar a tus cocoapods a la última versión funcional (2.3.0).
Vaya a la raíz de la carpeta de su proyecto y abra el directorio /ios .
cd ios Abra su Podfile y cambie el siguiente bloque de código:
use_flipper!para
use_flipper!({ 'Flipper-Folly' => '2.3.0' }) Dentro del directorio /ios ejecuta el siguiente comando:
pod installSi funcionó, regrese a la raíz de su proyecto e intente ejecutar el proyecto
cd .. npx react-native run-iosen caso de que no fuera así, consulte la sección de solución de problemas de compatibilidad:
Después de intentar ejecutar pod install , es posible que haya recibido un error similar a este:
[!] CocoaPods could not find compatible versions for pod "Flipper-Folly": In Podfile: Flipper-Folly (= 2.3.0) Flipper-RSocket (~> 1.1) was resolved to 1.3.0, which depends on Flipper-Folly (~> 2.5) FlipperKit/FBCxxFollyDynamicConvert (~> 0.54.0) was resolved to 0.54.0, which depends on Flipper-Folly (~> 2.2)Para solucionar esto
Vuelve a tu carpeta /ios
cd ios Y elimine el archivo Podfile.lock
rm -rf Podfile.lockVuelva a instalar las cápsulas
pod installY ejecuta react-native
cd .. npx react-native run-iosSi nada funciona, comentalo.
# use_flipper!({ 'Flipper-Folly' => '2.5.1' })¡Intenté todo aquí y mucho más y nada funcionó!
Entonces yo:
--legacy-peer-deps para mí),npx pod-install (o cd ios/, pod-install)npx react-native run-iosY finalmente funcionó.
Aparentemente, eliminar los node_modules funcionó, pero no me preguntes por qué.
Este problema es causado por actualizaciones de especificaciones de pod flipper-folly
Eliminar/desinstalar react-native-cli, solo use npx
Pruebe esto en react-native 0.63.4 (versión estable anterior).
Recuerde que no funciona para la última versión 0.64.0 con XCode 12.5
¡Dentro de ios/Podfile reemplace use_flipper! con:
use_flipper!({ 'Flipper-Folly' => '2.5.3', 'Flipper' => '0.87.0','Flipper-RSocket' => '1.3.1' })
instalación de pod --repo-actualización
npx react-native run-ios
si no necesita usar flipper o aún tiene algunos problemas, intente comentar flipper dentro de podfile e instale pods usando el comando
instalación de pod --repo-actualización
#use_flipper!() #post_install do |installer| #flipper_post_install(installer) #endpuede comentar fácilmente estas líneas para deshabilitar flipper:
# add_flipper_pods! # post_install do |installer| # flipper_post_install(installer) # end y comente estas líneas en appDelegate.m :
//#if DEBUG //#import <FlipperKit/FlipperClient.h> //#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> //#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h> //#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> //#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> //#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> //static void InitializeFlipper(UIApplication *application) { // FlipperClient *client = [FlipperClient sharedClient]; // SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; // [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; // [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; // [client addPlugin:[FlipperKitReactPlugin new]]; // [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; // [client start]; //} //#endiftambién esto en el mismo archivo:
// #if DEBUG // InitializeFlipper(application); // #endifA mi me funciono la unica reparacion
No hay necesidad de desactivar flipper o hacer malabarismos con sus versiones.
agregue esto a su Podfile en la sección post_install
system('cd Pods/Headers/Public; ln -s Protobuf protobuf') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_arm64e_armv7_armv7s; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_i386_x86_64-simulator; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_x86_64-maccatalyst; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/macos-arm64_arm64e_x86_64; ln -sfh OpenSSL.framework openssl.framework')se verá así
... use_flipper!() post_install do |installer| react_native_post_install(installer) # check if file system is case sensitive # if so then create symbolic links # for every openssl framework with name in lowercase unless File.exist? "pods" system('cd Pods/Headers/Public; ln -s Protobuf protobuf') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_arm64e_armv7_armv7s; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_i386_x86_64-simulator; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/ios-arm64_x86_64-maccatalyst; ln -sfh OpenSSL.framework openssl.framework') system('cd Pods/OpenSSL-Universal/Frameworks/OpenSSL.xcframework/macos-arm64_arm64e_x86_64; ln -sfh OpenSSL.framework openssl.framework') end __apply_Xcode_12_5_M1_post_install_workaround(installer) end ...luego
eliminar la carpeta Pods y Podfile.lock
ejecutar pod install
crea tu aplicación ( npx react-native run-ios en la carpeta raíz de tu aplicación)
Explicación
En mi caso, el problema era el sistema de archivos que distingue entre mayúsculas y minúsculas. Puede buscar en la terminal el fatal error: 'openssl/opensslv.h' file not found o simplemente intente compilarlo con esta solución.