¿Por qué React (falta) en la lista de objetivos de compilación del esquema xcode?

8

Estoy tratando de ejecutar mi primera aplicación React-Native en un dispositivo ios usando xcode y sigo recibiendo este error:

ld: warning: directory not found for option '-L/Users/XXXX/Library/Developer/Xcode/DerivedData/nigh-hktjvygosupgnoaafsvgyowhzsqi/Build/Products/Debug-iphoneos/React'

ld: library not found for -lReact
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Supongo que la causa está relacionada con el hecho de que React falta en la lista de objetivos de compilación de mi Esquema. React es el primero en la lista con todas las casillas marcadas, pero dice React (falta) en lugar de solo React:

Captura de pantalla de la lista de objetivos de compilación

Si hago clic en el botón '+', Reaccionar no es una opción. Aquí está mi podfile:

platform :ios, '10.0'

require_relative '../node_modules/react-native-unimodules/cocoapods'

target 'nigh' do
  # Pods for nigh
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge',
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTBlob',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
  ]

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

  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 'RNGestureHandler', :podspec => '../node_modules/react-native-gesture-handler/RNGestureHandler.podspec'
  pod 'RNReanimated', :podspec => '../node_modules/react-native-reanimated/RNReanimated.podspec'
  pod 'react-native-google-maps', path: '../node_modules/react-native-maps'  # Uncomment this line if you want to support GoogleMaps on iOS
  pod 'GoogleMaps'  # Uncomment this line if you want to support GoogleMaps on iOS
  pod 'Google-Maps-iOS-Utils' # Uncomment this line if you want to support GoogleMaps on iOS

  use_unimodules!


  pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'

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

  pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

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

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

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

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

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

end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'react-native-google-maps'
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end
    if target.name == "React"
      target.remove_from_project
    end
  end
end

Intenté eliminar el bloque if target.name == "React" y aún recibo el mismo error. También estoy abriendo xcode desde .xcworkspace en lugar de .xcodeproject ya que estoy usando cocoapods. Intenté eliminar todo de la carpeta DerivedData y limpiar la compilación, y también intenté compilar usando el Sistema de compilación heredado. El sistema Legacy Build muestra advertencias en casi todas las bibliotecas que dicen "Objetivo de dependencia faltante 'Reaccionar'".

Necesitaba cambiar el nombre de mi paquete de org.reactjs.native.example.nigh a org.reactjs.native.name.nigh, ¿podría ser eso responsable? Sé que en algún momento React no faltaba en la lista de objetivos. A pesar de que falta React, la aplicación aún funciona bien en el emulador de iPhone xcode.

También en el archivo Pods / Products, libReact.a no tiene un icono como los otros archivos .a

¿Alguien puede decirme por qué sucede esto y / o cómo solucionarlo / solucionarlo?

Ben d'Straw
fuente
Si está utilizando el último React Native, Podfile no debería verse así. Ver asistente de actualización .
Ziyo
Estoy usando 0.59.10. ¿No hay forma de ejecutar el proyecto en un dispositivo con esta versión, o necesito actualizar y cambiar todos mis archivos?
Ben d'Straw
Mi producto -> Editar esquema se muestra como React Missing. ¿Alguna solución para esto?
Sejn
Creo que el problema estaba realmente relacionado con el uso de Expo, ya que Expo no parece usar la última versión de react native (gracias @Ziyo). También requiere más violín a largo plazo y le falta alguna funcionalidad nativa, por lo que en el futuro, a menos que lo que estoy construyendo sea agradable y liviano, evitaré la Expo. Terminé creando un nuevo proyecto con cli nativo de reacción y todo funciona como un reloj. Para aquellos que quieran probar mi solución, reiniciando sans Expo, seleccione React Native Cli Quickstart en [ facebook.github.io/react-native/docs/getting-started]
Ben d'Straw
Recibo este error y mi archivo de pod es el actualizado.
pianoman102

Respuestas:

-3

Solucioné este problema yendo a Preferencias del sistema -> Seguridad y privacidad. Debajo de la pestaña de privacidad, permití a Xcode acceder a mis archivos y carpetas.

Lo que realmente sucedió fue que actualicé mi sistema operativo a Catalina. De alguna manera, el acceso a los archivos y la carpeta no se otorga a Xcode, por lo tanto, xcode no puede leer el archivo, por lo que obtiene este problema.

Panel de configuración para seguridad y privacidad

Wei Qi Lam
fuente