Hola,
React Native Environment Info:
System OS: macOS High Sierra 10.13.6
Binaries:
Node: 8.11.3 - /usr/local/bin/node
npm: 5.6.0 - /usr/local/bin/npm
IDEs:
Xcode: 10 Beta 3
npmPackages:
react: 16.4.1
react-native: 0.56.0
Recibí el siguiente error cuando intento construir la aplicación RN 0.56 simple:
warning: Skipping duplicate build file in Compile Sources build phase: <PATH_TO_PROJECT>/node_modules/react-native/React/Modules/RCTRedBoxExtraDataViewController.m (in target 'React-tvOS')
...
warning: duplicate output file '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h' on task: PBXCp <PATH_TO_PROJECT>/node_modules/react-native/Libraries/Image/RCTResizeMode.h <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTResizeMode.h (in target 'React')
...
error: Multiple commands produce '<PbxCp <HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h>':
1) Target 'React-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
2) Target 'React' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/React/Views/ScrollView/RCTScrollableProtocol.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/React/RCTScrollableProtocol.h'
error: Multiple commands produce '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h':
1) Target 'double-conversion-tvOS' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
2) Target 'double-conversion' has copy command from '<PATH_TO_PROJECT>/node_modules/react-native/third-party/double-conversion-1.1.5/src/fast-dtoa.h' to '<HOME>/Library/Developer/Xcode/DerivedData/ReactNativeSimple-dpupkkuvhsslwxgngxzqgwsrazap/Build/Intermediates.noindex/ArchiveIntermediates/ReactNativeSimple/BuildProductsPath/Release-iphoneos/include/double-conversion/fast-dtoa.h'
...
xcodebuild -project <PATH_TO_PROJECT>/ios/ReactNativeSimple.xcodeproj -scheme ReactNativeSimple archive -sdk iphoneos -archivePath <PATH_TO_PROJECT>/output/build/archive/ReactNativeSimple CODE_SIGN_STYLE=Automatic
Lo probé en la aplicación RN simple que fue creada por el comando " react-native init ".
Cuando intento crear la aplicación usando la GUI de Xcode 10, se crea correctamente.
Pero trato de construirlo usando el comando xcodebuild; falló con el error anterior.
Cuando usamos el mismo comando en la misma aplicación (RN 0.56) en Xcode 9.4.1, se compila con éxito
Si no especifico -sdk
param en el comando xcodebuild, se compila con éxito.
Nota: _Los errores pueden ser diferentes para las diferentes versiones de Xcode 10 Beta._
¿RN 0.56 es compatible con Xcode 10 Beta?
¿Cómo puedo solucionarlo?
¿Existe una solución alternativa para construirlo usando Xcode 10 Beta?
Puede intentar cambiar el sistema de compilación a Legacy,
Archivo> Configuración del espacio de trabajo> Sistema de compilación> Sistema de compilación heredado.
Queremos utilizar un nuevo sistema de construcción.
El nuevo sistema de construcción debe ser compatible. Estamos rastreando cualquier problema que la gente encuentre con Xcode 10 o el nuevo sistema de compilación en esta tarea: https://github.com/facebook/react-native/issues/19573
De un vistazo, no parece que su problema esté cubierto por lo que hemos solucionado hasta ahora en el maestro. Lo agregaré a la lista.
También tuve el error Multiple commands produce
con libReact.a
& libyoga.a
.
Estoy usando:
0.57.0
Para superar esto, he agregado esto a mi Podfile
:
post_install do |installer|
installer.pods_project.targets.each do |target|
# The following is needed to ensure the "archive" step works in XCode.
# It removes React & Yoga from the Pods project, as it is already included in the main project.
# Without this, you'd see errors when you archive like:
# "Multiple commands produce ... libReact.a"
# "Multiple commands produce ... libyoga.a"
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
Luego, reconstruya su proyecto de Pods con:
$ pod install
Detalles completos del entorno:
React Native Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
Memory: 4.10 GB / 32.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node
Yarn: 1.9.4 - /usr/local/bin/yarn
npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0
IDEs:
Xcode: 10.0/10A255 - /usr/bin/xcodebuild
npmPackages:
react: 16.5.0 => 16.5.0
react-native: 0.57.0 => 0.57.0
npmGlobalPackages:
create-react-native-app: 1.0.0
react-native-cli: 2.0.1
Confirmado que funciona la solución de Pods
también debería funcionar, como lo he estado haciendo con React, que también ha estado causando errores de compilación de objetivos duplicados, antes de RN 0.57.
Si está utilizando xcodebuild
, agregue este -UseModernBuildSystem=NO
para optar por el antiguo sistema de compilación heredado
@PaulMest Gracias, me
¡Espero que mi situación pueda ayudarlos a solucionar el problema!
Aquí está el resultado completo:
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/src/Resources/Fonts/Roboto.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Roboto.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Zocial.ttf'
:-1: Multiple commands produce '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf':
1) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/native-base/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
2) Target 'zonder' (project 'zonder') has copy command from '/Users/ntomallen/source/zonder-mobile-app/node_modules/react-native-vector-icons/Fonts/Ionicons.ttf' to '/Users/ntomallen/Library/Developer/Xcode/DerivedData/zonder-bkcoqubqbalyhffxhurxhkuivvms/Build/Products/Debug-iphonesimulator/zonder.app/Ionicons.ttf'
Básicamente, react-native-vector-icons
y native-base
agrupan los mismos archivos de fuentes. (Y por alguna razón también tenemos uno de ellos incluido; me aseguraré de eliminarlo). Antes de actualizar a Xcode 10 / Mojave, no hubo ningún problema. El único cambio fue actualizar de Xcode 9 a Xcode 10.
@ntomallen Me encontré exactamente con el mismo problema con fuentes duplicadas de react-native-vector-icons
y native-base
y lo que terminé haciendo fue eliminar el duplicado de la sección Copy Resources To Bundle
de mi aplicación de destino. Después de esto, mi proyecto funcionó nuevamente (bueno, se movió a dos errores diferentes, que se describen aquí: libfishhook.a no se puede encontrar - corregir y varios comandos producen error con libReact.a & libyoga.a. - arreglar
Hasta ahora, mi aplicación ha funcionado bien y puedo compilar usando el nuevo sistema de compilación de XCode 10.
_Descargo de responsabilidad: no soy un desarrollador de iOS con experiencia y pirateé estas soluciones juntas. No sé si he estropeado algo que no conozco.
¡Eso es exactamente lo que funcionó para mí también! Aunque todavía tengo curiosidad por saber por qué de repente es un error ahora pero no antes.
El 26 de septiembre de 2018, 2:49 p. M. -0400, Niels Bokmans [email protected] escribió:
@ntomallen Me encontré con el mismo problema exacto con las fuentes duplicadas de react-native-vector-icons y native-base y lo que terminé haciendo fue eliminar el duplicado de la sección Copiar recursos al paquete de mi aplicación de destino. Después de esto, mi proyecto funcionó nuevamente (bueno, se movió a dos errores diferentes, que se describen aquí: libfishhook.a no se puede encontrar - corregir y varios comandos producen error con libReact.a & libyoga.a. - arreglar
Hasta ahora, mi aplicación ha funcionado bien y puedo compilar usando el nuevo sistema de compilación de XCode 10.
Descargo de responsabilidad: no soy un desarrollador de iOS con experiencia y pirateé estas soluciones juntas. No sé si he estropeado algo que no conozco.
-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub o silencie el hilo.
@ntomallen Básicamente se debe a que hay un nuevo sistema de compilación "más estricto", y XCode 10 lo usa de forma predeterminada, mientras que en XCode 9 tuvo que elegir activamente usarlo en lugar del sistema de compilación "heredado" que todos hemos estado usando hasta ahora.
Okay. Esto es enloquecedor. Cambié al sistema de compilación heredado. Ahora, obtengo un error diferente.
/Users/michaelstelly/Documents/projects/mobile_gtm/node_modules/react-native/React/../third-party/glog-0.3.4/src/base/mutex.h:105:10: fatal error: 'config.h' file not found
#include "config.h" // to figure out pthreads support
No tengo idea de lo que esto significa, aparte de lo obvio: falta un archivo. Pero antes de Xcode 10, no tuve ningún problema de compilación.
@mjstelly, ¿estás en 0.57? Su mensaje de error menciona glog-0.3.4
pero 0.57 usa glog-0.3.5
. Solo quiero asegurarme de que estamos rastreando los problemas en la última versión.
@PaulMest mi héroe! ¡Gracias!
Hola @mjstelly
¿Está enfrentando un problema similar con un tercero .....
estoy usando xcode 10
Xcode 10.1 Parece que se está construyendo bien en ambos sistemas, pero no puedo archivar en ninguno de los dos, hay muchos errores de compilación. ¿Qué hacer ahora?
Tienes que ser más específico. Xcode 10 se compila y archiva bien para mí (después de resolver algunos errores que no recuerdo ahora), en MacOS 10.12.6 y RN 0.57.0.
Mi post_install de Podfile se ve así:
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
if target.name == 'yoga'
target.remove_from_project
target.build_configurations.each do |config|
config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO'
config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
end
end
end
end
Seguir la sugerencia de @PaulMest funcionó para mí.
@njbmartin ¡Gracias!
solo tu solución funcionó para mí
-UseModernBuildSystem = NO
Esto funciona para mi. Hombre, me tomó demasiado tiempo encontrar esto. Gracias.
Cambiar al sistema de compilación heredado corrige muchos errores de compilación, pero realmente necesitamos poder usar el sistema moderno en el futuro: p
Además, ¡Feliz Día de Acción de Gracias para aquellos de ustedes que celebran!
sí, la nueva versión es bonita, por supuesto, pero no tan fluida.
Actualice con riesgo.
@PaulMest Gracias. Tu truco funciona :)
Confirmado que funciona la solución de
Pods
también debería funcionar, como lo he estado haciendo con React, que también ha estado causando errores de compilación de objetivos duplicados, antes de RN 0.57.
¿Cómo hacer esto exactamente @fungilation ?
Este es el único bloqueador conocido que queda en # 19573. ¿La gente todavía se encuentra con este problema en 0.57.8?
No tengo ningún problema en general con Xcode desde 0.57.8
@hramos Lamentablemente no. Para mí, la opción de compilación heredada de Xcode todavía es necesaria con 0.57.8 y también con el nuevo 0.58.0-rc.3 (editar: también con 0.58.3).
Para hacer esto reproducible, creo un nuevo proyecto fresco y lo pruebo localmente y con travis CI. Vinculé el proyecto original a continuación (pero se acaba de crear con react-native init) y las compilaciones exitosas y rotas en travis. ¿Quizás esto ayude? Al menos podría volver a ejecutar este experimento cuando haya una nueva versión disponible.
Pero con Xcode 10 la compilación falla.
PR que muestran la diferencia de travis.yml
Compilación con el error "Varios comandos producen"
Cuando se usa Xcode 10 con el sistema de compilación heredado, vuelve a funcionar.
PR que muestran la diferencia de travis.yml
Construcción exitosa de travis
@hramos Me lo estoy encontrando cuando ejecuto una compilación con desintoxicación , no yarn ios
. Aquí está mi configuración para mi simulador de iOS:
{
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/reactipay.app",
"build": "xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 6"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "emulator-5554"
}
},
"test-runner": "jest"
}
Específicamente, si ejecuto esto: xcodebuild -project ios/reactipay.xcodeproj -scheme reactipay -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build
falla con el error original.
También tuve el error
Multiple commands produce
conlibReact.a
&libyoga.a
.
Estoy usando:
- Xcode 10
- react-native
0.57.0
- CocoaPods
Para superar esto, he agregado esto a mi
Podfile
:post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
Luego, reconstruya su proyecto de Pods con:
$ pod install
Detalles completos del entorno:
gracias hombre!
Estoy muy confundido con este error ya que no parece consistente. si ejecuto el comando de compilación 10 veces, eventualmente podría comenzar a funcionar
así es como se ve el script mu e2e
detox build -c ios.sim.releas ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release ||
detox build -c ios.sim.release
¿Dónde está la construcción de desintoxicación?
xcodebuild -project ios/deliverypoc.xcodeproj -scheme deliverypoc -configuration Release -sdk iphonesimulator -derivedDataPath ios/build
No puedo usar el sistema de compilación heredado, ya que se cuelga de la compilación de reacción y no uso Cocoa Pods.
¿Qué otras soluciones podrían ser?
¿Debo migrar mi iOS a Cocoa? ¿Qué implicaciones traería?
@ pavlof01 Estoy buscando específicamente informes de que esto todavía ocurre en las versiones 0.57.8 o más recientes.
@hramos Todavía tengo esto en Xcode 10.1 en 0.57.8 y 0.58.3. No he intentado ejecutar con el sistema de compilación heredado (¿es esa la solución oficial por ahora?); En cambio, estoy usando el Podfile para target.remove_from_project
cuando name == "React"
o name == "yoga"
. Tampoco he probado Xcode 9, etc., como lo ha hecho
Este no es un problema de bloqueo para nosotros, ¡pero yo intervendría! Lmk si puedo proporcionar más información útil.
Tenga en cuenta que cuando dije que ya no tengo ningún problema en RN 0.57.8, también estoy usando esta solución en Podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
Lo olvidé 😛
@hramos Estoy usando 0.57.8 (mismo error) - avíseme si necesita información adicional.
Me encontré con esto también con la desintoxicación. Lo arreglé especificando un destino en xcodebuild en lugar del sdk: -destination 'platform=iOS Simulator,name=iPhone 7'
Puede confirmar que ocurre en 0.58.3 durante el paso de archivo. Agregar la solución remove_from_project
a mi podfile lo resuelve. Salida de react-native info
:
$ $(npm bin)/react-native info
React Native Environment Info:
System:
OS: macOS 10.14
CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
Memory: 1.13 GB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.0.0 - /usr/local/bin/node
Yarn: 1.10.1 - /usr/local/bin/yarn
npm: 6.4.1 - /usr/local/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: 19, 21, 22, 23, 24, 25, 26, 27, 28
Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.1, 26.0.3, 27.0.3, 28.0.1, 28.0.2, 28.0.3
System Images: android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom_64, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom_64, android-24 | Google APIs Intel x86 Atom_64, android-24 | Google Play Intel x86 Atom, android-25 | Google APIs Intel x86 Atom, android-25 | Google APIs Intel x86 Atom_64, android-25 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom_64, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom_64
IDEs:
Android Studio: 3.2 AI-181.5540.7.32.5056338
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmGlobalPackages:
react-native-cli: 2.0.1
Gracias @aaronjensen luchó muchas horas en este ...
He estado usando el nuevo sistema de compilación desde 58 sin problemas.
Tuve problemas de Multiple commands produce *
como los anteriores, pero esto se debió a las sobras de antes de cambiar a Pods (vinculación); asegúrese de eliminar todos los Linked Frameworks and Libraries
relacionados con React Native de su proyecto Xcode (no el espacio de trabajo generado) si ahora está usando Pods.
Una vez que lo haya limpiado y haya cambiado a RN a través de Pods, debería verse así:
Y NO así:
Tenga en cuenta que el antiguo sistema de compilación ignoró estas duplicaciones al intentar utilizar RN mediante la vinculación de & pods; el nuevo sistema de construcción no lo hace; por lo que es posible que los haya tenido durante algún tiempo.
Si está construyendo con xcodebuild
eg para Detox, asegúrese de aplicar la sugerencia de @aaronjensen de arriba a su comando de construcción.
@salakar He estado haciendo lo mismo sin problemas. Una cosa a tener en cuenta es que si vinculó manualmente una biblioteca de terceros sin pods, puede tener problemas para encontrar React Native. Básicamente, intenta cambiar todo a Pods.
Cierre según el comentario de @Salakar .
@cpojer En mi react-native init
. Esto no es lo que esperan los nuevos usuarios. El valor predeterminado debería funcionar sin cambios en Xcode y sin CocoaPods. (Aunque CocoaPods es genial y funciona bien con RN 😏)
Como se explicó antes, creé una aplicación de muestra con react-native init
y ejecuté esto en Travis CI. Esto demuestra que la compilación funciona bien con Xcode 9 y Xcode 10 con el sistema de compilación heredado. Y no funciona con el nuevo sistema de compilación Xcode 10.
Puede ver el historial de compilación aquí en GitHub , el maestro ya es 0.59.0-rc.1 y todavía tiene el mismo problema.
El historial de compilación para diferentes ramas está disponible en Travis CI (el maestro es Xcode 9 y hay dos ramas para Xcode 10) y como GitHub Pull Request
Como dijo. EN MI HUMILDE OPINIÓN. 😏
@jerolimov, su compilación no especifica un destino , lo que parece ser esencial, ya que de lo contrario intenta construir artefactos tanto para tvOS como para iOS, lo que causa el problema que está viendo.
Lo que no está claro es si hay algo que RN pueda estar haciendo que pueda hacer que el nuevo sistema de compilación sepa qué desea implícitamente o si esto es solo un error en xcode (en cuyo caso este es el repositorio incorrecto para el problema) .
Dado el comentario de @Salakar
Parece que no limpié los marcos y bibliotecas vinculados correctamente cuando cambié para comenzar a usar Pods. ¿Alguien puede proporcionar más detalles sobre el proceso correcto para eliminar esos enlaces?
En Xcode, haga clic con el botón derecho en todas las cosas que hacen referencia a React Native (generalmente en Frameworks o Bibliotecas en la barra lateral) y elija "eliminar referencias". Al final del proceso, asegúrese de que la sección Bibliotecas y marcos vinculados no tenga referencias a React Native. Tenga en cuenta que mientras hace esto, sus otras bibliotecas de terceros que dependen de React Native también deben estar vinculadas a través de Pods. (La mayoría de los principales lo admiten, lo cual es bueno).
Me encontré con esto también con la desintoxicación. Lo arreglé especificando un destino en xcodebuild en lugar del sdk:
-destination 'platform=iOS Simulator,name=iPhone 7'
@aaronjensen ¿Puede proporcionar el código completo como muestra?
"xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -derivedDataPath ios/build -destination 'platform=iOS Simulator, name=iPhone 7'"
?
Claro, lo que tienes se parece mucho a lo que estamos usando.
xcodebuild -project ios/AppName.xcodeproj -scheme AppName -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 7' -derivedDataPath ios/build
También tuve el error
Multiple commands produce
conlibReact.a
&libyoga.a
.
Estoy usando:
- Xcode 10
- react-native
0.57.0
- CocoaPods
Para superar esto, he agregado esto a mi
Podfile
:post_install do |installer| installer.pods_project.targets.each do |target| # The following is needed to ensure the "archive" step works in XCode. # It removes React & Yoga from the Pods project, as it is already included in the main project. # Without this, you'd see errors when you archive like: # "Multiple commands produce ... libReact.a" # "Multiple commands produce ... libyoga.a" targets_to_ignore = %w(React yoga) if targets_to_ignore.include? target.name target.remove_from_project end end end
Luego, reconstruya su proyecto de Pods con:
$ pod install
Detalles completos del entorno:
React Native Environment Info: System: OS: macOS High Sierra 10.13.6 CPU: x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz Memory: 4.10 GB / 32.00 GB Shell: 3.2.57 - /bin/bash Binaries: Node: 10.9.0 - ~/.nvm/versions/node/v10.9.0/bin/node Yarn: 1.9.4 - /usr/local/bin/yarn npm: 6.4.1 - ~/.nvm/versions/node/v10.9.0/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman SDKs: iOS SDK: Platforms: iOS 12.0, macOS 10.14, tvOS 12.0, watchOS 5.0 IDEs: Xcode: 10.0/10A255 - /usr/bin/xcodebuild npmPackages: react: 16.5.0 => 16.5.0 react-native: 0.57.0 => 0.57.0 npmGlobalPackages: create-react-native-app: 1.0.0 react-native-cli: 2.0.1
buen trabajo
rm -rf Pods; pod install
funcionó para mí
@Salakar La eliminación de todas las bibliotecas RCT * de Linked Frameworks and Libraries
en el proyecto Xcode se compila con éxito en iOS, pero da el error Native module cannot be null
. Y solo después de agregar las bibliotecas libReact.a
y otras libRCT*.a
, la compilación funciona. Estamos usando Pods
para administrar otras dependencias.
A continuación se muestra cómo se ve nuestro Podfile,
`` `fuente ' https://github.com/CocoaPods/Specs.git '
plataforma: ios, '9.0'
inhibit_all_warnings!
complemento 'cocoapods-fix-react-native'
objetivo 'RNMobile' hacer
# Descomente la siguiente línea si está usando Swift o le gustaría usar marcos dinámicos
# use_frameworks!
# Pods básicos para RNMobile
pod 'React',: path => '../node_modules/react-native',: subspecs => [
'Núcleo',
'CxxBridge',
'DevSupport',
# los siguientes son los tomados de "Bibliotecas" en Xcode:
'RCTAnimation',
'RCTActionSheet',
'RCTBlob',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
# las siguientes dependencias son dependencias de React native.
pod 'yoga',: ruta => '../node_modules/react-native/ReactCommon/yoga/Yoga.podspec'
pod 'DoubleConversion',: podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'Locura',: podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'glog',: podspec => '../node_modules/react-native/third-party-podspecs/GLog.podspec'
# Cápsulas adicionales para WahedMobile
pod 'AppCenter / Crashes', '~> 1.13.0'
pod 'AppCenter / Analytics', '~> 1.13.0'
pod 'AppCenterReactNativeShared', '~> 1.12.0'
pod 'RNVectorIcons',: ruta => '../node_modules/react-native-vector-icons'
pod 'lottie-react-native',: ruta => '../node_modules/lottie-react-native'
pod 'lottie-ios',: ruta => '../node_modules/lottie-ios'
pod 'RNAWSCognito',: ruta => '../node_modules/amazon-cognito-identity-js'
pod 'TouchID',: ruta => '../node_modules/react-native-touch-id'
pod 'BVLinearGradient',: path => '../node_modules/react-native-linear-gradient'
pod 'RNGestureHandler',: path => '../node_modules/react-native-gesture-handler'
pod 'RNSVG',: ruta => '../node_modules/react-native-svg'
pod 'react-native-camera',: ruta => '../node_modules/react-native-camera'
pod 'CodePush',: ruta => '../node_modules/react-native-code-push'
pod 'RNAnalytics',: path => '../node_modules/@segment/analytics-react-native'
# Libs de Firebase
pod 'Firebase / Core', '~> 5.15.0'
pod 'Firebase / Messaging', '~> 5.15.0'
# Onfido Libs
pod 'Onfido', '10 .3.0 ',: configuraciones => [' Depurar ']
pod 'Onfido-Release', '10 .3.0 ',: configuraciones => [' Release ']
pod 'RNKeychain',: ruta => '../node_modules/react-native-keychain'
fin
''
Además, agregar las bibliotecas en Linked Frameworks and Libraries
crea errores de símbolos duplicados en AppCenter.
Como referencia para los usuarios nativos de Reacción que están actualizando a 59 y tienen pods:
Además de la solución de tvOS .
Mi post_install de Podfile se ve así:
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 if target.name == 'yoga' target.remove_from_project target.build_configurations.each do |config| config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'NO' config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO' end end end end
Seguir la sugerencia de @PaulMest funcionó para mí.
su solución funcionó para mí, tanques.
https://github.com/facebook/react-native/issues/20492#issuecomment -464343895
Eso y matar una instancia obsoleta del empaquetador de metro me ayudó.
Tengo este problema y no estoy usando cocoapods. No puedo usar cocoapods porque estoy usando react-native-navigation.
@MakhouT usando react-native-navigation no le restringe el uso de cocoapods
@AngefloMusic React-native-navigation no lo está usando y para la configuración necesitas cambiar algunos archivos nativos de iOS. Al usar cocoapods, supongo que esto entrará en conflicto entre sí al instalar las dependencias de pod. Sin embargo, no estoy seguro porque no tengo demasiadas semillas de coco. Así que corrígeme si me equivoco.
@MakhouT No react-native-navigation
, verás que hay un archivo podspec. Estoy usando RNN con cocoapods en un proyecto ahora.
Lo siento, necesito volver a abrir esto, pero la solución más preferida (ver Podfile a continuación) me lleva a este doloroso error al intentar producir el archivo.
este es mi podfile
# Uncomment the next line to define a global platform for your project
platform :ios, '10.1'
target 'TVTips' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
#use_frameworks!
# Pods for TVTips
pod 'Firebase/Core', '~> 5.20.1'
pod 'Firebase/Analytics', '~> 5.20.1'
pod 'Firebase/Auth'
pod 'GoogleSignIn', '~> 4.4.0'
pod 'TwitterKit', '~> 3.3.0'
pod 'React', :path => '../node_modules/react-native', :modular_headers => true
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'react-native-twitter-signin', :path => '../node_modules/react-native-twitter-signin'
target 'TVTips-tvOSTests' do
inherit! :search_paths
# Pods for testing
pod 'YouTubeSdk', :path => '../node_modules/react-native-youtube-sdk'
pod 'ReactNativeLocalization', :path => '../node_modules/react-native-localization'
pod 'RNShare', :path => '../node_modules/react-native-share'
end
target 'TVTipsTests' do
inherit! :search_paths
# Pods for testing
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
targets_to_ignore = %w(React yoga)
if targets_to_ignore.include? target.name
target.remove_from_project
end
end
end
end
He importado React tanto en Link Binary con bibliotecas como en Linked Frameworks y bibliotecas.
Ayuda :)
Para mí, trabajo eliminando recursos duplicados en el interior
Construir fases
Como ejemplo a continuación, Fonts estaba cometiendo un error.
Sé que este es un problema resuelto para las personas que movieron RN a Pods o personas que usan RN> 0.60.x, pero si aún no está listo o está migrando, esta es nuestra solución temporal (básicamente eliminó la configuración de tvOS del archivo pbxproj de React Native, que parece estar causando los múltiples objetivos).
Lo usamos en nuestro script postinstall
const xcode = require('xcode');
const fs = require('fs');
const path = require('path');
const reactNativeProjectPath = path.resolve(__dirname, '../node_modules/react-native/React/React.xcodeproj/project.pbxproj');
const myProj = xcode.project(reactNativeProjectPath);
myProj.parse(err => {
if (err) {
throw err;
}
const nativeTargets = myProj.hash.project.objects.PBXNativeTarget;
Object.keys(nativeTargets).forEach(nativeTargetKey => {
const target = nativeTargets[nativeTargetKey];
if (target.name && target.name.indexOf('-tvOS') !== -1) {
console.log(`Removing ${target.name}:${nativeTargetKey} in React pbxproj`);
delete nativeTargets[nativeTargetKey];
}
});
fs.writeFileSync(reactNativeProjectPath, myProj.writeSync());
console.log(`All mentioned of tvOS removed in React pbxproj`);
});
Para aquellos que usan Fastlane y enfrentan este problema, la solución @PaulMest funciona: agregue todos los objetivos requeridos a targets_to_ignore y luego ejecute rm -rf ios/Pods && pod install
antes de ejecutar Fastlane
Para mí, trabajo eliminando recursos duplicados en el interior
Construir fases
Como ejemplo a continuación, Fonts estaba cometiendo un error.
Agregando a la respuesta de @aerda ,
Creo que este error en mi caso estaba relacionado con la actualización a XCode 11, pero no estoy seguro de esa última parte.
Confirmo lo mismo con las fuentes duplicadas, solo después de actualizar a Xcode 11 estable hoy (Mac 10.14.6). La eliminación de fuentes en la sección [CP] Copy Pods Resources
de las fases de compilación y compilación de Xcode funciona nuevamente.
Estaba y está usando un sistema de construcción nueva. En RN 0.60.5.
@fungilation lo mismo conmigo (Xcode 11 - actualizado hoy, nuevo sistema de compilación y RN 0.60.5). Tengo que eliminar todas las fuentes debajo de Copy Bundle Resources
y funciona.
Pero cuando ejecute el comando pod install
próxima vez, estas entradas aparecerán nuevamente 😂️
lo mismo aquí con 0.61.0-rc.3 y xcode 11 11A420a mojave 10.14.6
Solo he eliminado react-native-vector-icons tff y funciona. No es necesario eliminar todos los tffs
elimine los pods anteriores instale el pod y luego ejecute el pod de actualización;
esto es lo que agregué a mi podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
if target.name == "yoga"
target.remove_from_project
end
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
end
end
end
esto es lo que agregué a mi podfile:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == "React" target.remove_from_project end if target.name == "yoga" target.remove_from_project end end installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf' end end end
Probé este comando (con fastlane) pero aún así los errores persisten. 😢
error: Multiple commands produce '.../UninstalledProducts/iphoneos/libRNGestureHandler.a':
Recibo errores similares para otras 4 bibliotecas que he instalado:
RNKeyChain, RNAsyncStorage, RNDeviceInfo y BVLinearGradient
Aquí está mi entorno
System:
OS: macOS 10.15.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 1.54 GB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 12.10.0 - /usr/local/bin/node
Yarn: 1.17.3 - /usr/local/bin/yarn
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 23, 26, 27, 28, 29
Build Tools: 27.0.3, 28.0.3, 29.0.1
System Images: android-19 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google APIs Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google Play Intel x86 Atom
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5977832
Xcode: 11.2/11B52 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: ^0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
He estado tratando de encontrar una solución desde la mañana, pero hasta ahora no he encontrado nada que funcione. 👎
Aunque cuando ejecuto un emulador, funciona bien.
Confirmo lo mismo con las fuentes duplicadas, solo después de actualizar a Xcode 11 estable hoy (Mac 10.14.6). La eliminación de fuentes en la sección
[CP] Copy Pods Resources
de las fases de compilación y compilación de Xcode funciona nuevamente.Estaba y está usando un sistema de construcción nueva. En RN 0.60.5.
Para novatos como yo: necesitas editar el archivo <PROJECT_FOLDER>/ios/<PROJECT_NAME>.xcodeproj/project.pbxproj
Luego comente las líneas de fuente (archivos que terminan en .ttf) de esta manera:
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-drawer2/Pods-drawer2-resources.sh",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
// "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
// "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
);
Y tuve que rehacer este proceso cada vez que ejecuté pod install
Comentario más útil
Puede intentar cambiar el sistema de compilación a Legacy,
Archivo> Configuración del espacio de trabajo> Sistema de compilación> Sistema de compilación heredado.