Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
Cómo migrar a Xcode 12.5

No puedo construir un proyecto React Native, que se construyó correctamente usando Xcode 11, usando Xcode 12.5.

Ya no puedo usar Xcode 11 porque solo las versiones más actuales de Xcode tienen la API necesaria para publicar/cargar en TestFlight y la tienda de aplicaciones.

Ahora recibo tres errores de compilación:

 Cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an rvalue of type 'NSArray<Class> *' Cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an rvalue of type 'NSArray<Class> *' Cannot initialize a parameter of type 'NSArray<id<RCTBridgeModule>> *' with an rvalue of type 'NSArray<Class> *'

También noté que los objetivos de implementación se actualizaron automáticamente del 10 al 9:

 - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.1;

Se agregaron algunas propiedades nuevas relacionadas con Clang:

 + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;

¿Cómo puedo configurar el proyecto para implementar esta aplicación usando Xcode 12.5?

$ información de reacción nativa información Obteniendo información del sistema y bibliotecas... Sistema: SO: macOS 11.3 CPU: (4) x64 Intel(R) Core(TM) i3-8100B CPU @ 3.60GHz Memoria: 256.45 MB / 8.00 GB Shell: 3.2.57 - /bin/bash Binarios: Nodo: 10.16.0 - /usr/local/bin/node Yarn: 1.21.1 - ~/npm-global/bin/yarn npm: 6.9.0 - /usr/local/ bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDK: iOS SDK: Plataformas: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4 IDE: Xcode: 12.5/12E262 - /usr/bin /xcodebuild npmPackages: reaccionar: ^16.11.0 => 16.12.0 reaccionar nativo: 0.61.4 => 0.61.4 npmGlobalPackages: reaccionar nativo-cli: 2.0.1

over 4 years ago · Santiago Trujillo
6 Respuestas
Responde la pregunta

0

Este funcionó para mí. Actualice el PODFILE con:

 post_install do |installer| ## Fix for XCode 12.5 beta find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm", "_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules", "_initializeModules:(NSArray<Class> *)modules") end

Y al final de podfile agregue una función:

 def find_and_replace(dir, findstr, replacestr) Dir[dir].each do |name| text = File.read(name) replace = text.gsub(findstr,replacestr) if text != replace puts "Fix: " + name File.open(name, "w") { |file| file.puts replace } STDOUT.flush end end Dir[dir + '*/'].each(&method(:find_and_replace)) end

El último paso si ejecutar:

 pod install
over 4 years ago · Santiago Trujillo Denunciar

0

Lo arreglé cambiando un parámetro de conversión en el módulo React RCTCxxBridge.mm así:

 - (NSArray<RCTModuleData *> *)_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules withDispatchGroup:(dispatch_group_t)dispatchGroup lazilyDiscovered:(BOOL)lazilyDiscovered

Para:

 - (NSArray<RCTModuleData *> *)_initializeModules:(NSArray<Class> *)modules withDispatchGroup:(dispatch_group_t)dispatchGroup lazilyDiscovered:(BOOL)lazilyDiscovered

Estoy ejecutando 0.59 y no uso CocoaPods, pero la solución básica es que se convierte de la forma:

 NSArray<id<RCTBridgeModule>> *)modules

Debe ser reemplazado con:

 NSArray<Class> *)modules
over 4 years ago · Santiago Trujillo Denunciar

0

Este funcionó para mí.

  1. Abra RCTCxxBridge.mm (línea 770) y cambie el tipo de parámetro de: (NSArray<id<RCTBridgeModule>> *)modules a (NSArray<Class> *)modules
  2. Abra RCTTurboModuleManager.mm (línea 300) y cambie de: RCTBridgeModuleNameForClass(module)) a RCTBridgeModuleNameForClass(Class(module)));
over 4 years ago · Santiago Trujillo Denunciar

0

He enfrentado el mismo problema y después de usar este script, el problema se resolvió para estos tres errores, pero se enfrentó a uno nuevo (No hay función coincidente para llamar a 'RCTBridgeModuleNameForClass')

que se resolvió agregando esta línea en el script de postinstalación

Arreglo para XCode 12.5 beta

 post_install do |installer| find_and_replace("../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm", "_initializeModules:(NSArray<id<RCTBridgeModule>> *)modules", "_initializeModules:(NSArray<Class> *)modules") find_and_replace("../node_modules/react- native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm", "RCTBridgeModuleNameForClass(module))", "RCTBridgeModuleNameForClass(Class(module)))") end
over 4 years ago · Santiago Trujillo Denunciar

0

Abra su proyecto en Xcode y vaya a Archivo > Configuración del espacio de trabajo > Sistema de compilación > Sistema de compilación heredado

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema con Xcode 13.1. Pero resolví el problema con este método .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda