React Native XCode Project Product Archive falla con símbolos duplicates para architecture arm64

XCode Log

Curiosamente, no puedo conseguir que Archive trabaje en XCode, pero la compilation tiene éxito sin los errores en los símbolos duplicates si no bash archivar, sino simplemente build una versión de lanzamiento. El proyecto también se construye correctamente en dispositivos.

He buscado en este tema y he intentado deshabilitar la capacidad de testing y haber configurado el "No Common Blocks" en la configuration del proyecto como NO, pero no he tenido suerte hasta el momento.

El proyecto es un proyecto basado en React Native 0.40 con CocoaPods instalado también. PodFile es esto

# You Podfile should look similar to this file. React Native currently does not support use_frameworks! source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' # Change 'AirMapsExplorer' to match the target in your Xcode project. target 'StreetSmart' do pod 'React', path: '../node_modules/react-native', :subspecs => [ 'Core', 'RCTActionSheet', 'RCTAnimation', 'RCTGeolocation', 'RCTImage', 'RCTLinkingIOS', 'RCTNetwork', 'RCTSettings', 'RCTText', 'RCTVibration', 'RCTWebSocket' ] pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS # when not using frameworks we can do this instead of including the source files in our project (1/4): # pod 'react-native-maps', path: '../../' # pod 'react-native-google-maps', path: '../../' # <~~ if you need GoogleMaps support on iOS end 

La versión de XCode es 8.2.1, y el file de proyecto se abre a través de .xcworkspace ya que los pods están instalados.

Realmente agradecería cualquier ayuda o idea sobre esto, he estado atrapado en esto durante horas.

Finalmente resolvimos el problema después de encontrar un problema relevante en otro proyecto react-native aquí .

La respuesta es que hay dos copys de React Native en el proyecto Xcode, una de CocoaPods y otra como un subproyecto. Simplemente elimine todos los modules que ya estaban declarados en Podfile en las Libraries dentro de Xcode y el error desaparece después de una limpieza y vuelva a intentarlo.

Lo interesante de este problema es que todas las versiones de Debug y Release funcionan pero fallan al intentar Archivar el proyecto para su distribución.

[Actualización 2 de mayo de 2017]

La solución que describí anteriormente puede causar errores en el time de debugging cuando ejecutas tu código con react-native run-ios/android aunque permite que el proyecto se archive correctamente.

Un método alternativo es eliminar esos modules duplicates que existen tanto en Libraries como en Podfile desde la statement Podfile lugar de la carpeta Libraries . Y, por supuesto, ejecute los commands de pod relevantes, limpie su proyecto, etc.

Hacer esto permite que mi código se archive y también se ejecuta sin errores de time de debugging

Así que investigué aún más sobre esto y la solución es en realidad mucho más simple. O al less fue en mi caso. El problema es que cuando declara React en el podfile, el Pods xcodeproject recibe un objective React como parte del process de pod install . Tener este objective en el proyecto Pods es lo que causa el error al archivar. Entonces, la solución es eliminar el objective.

introduzca la descripción de la imagen aquí

El problema con la eliminación del objective en xCode es que esto realmente edita el file project.pbxproj dentro de la carpeta Pods, que no está en control de versión. Entonces, mientras que la compilation se archivará una vez que lo haga, si implementa desde cualquier lugar que no sea la máquina que lo eliminó manualmente, seguirá fallando. Entonces, la solución es agregar este command de installation de publicación al final de tu podfile:

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

Esto simplemente pasa por todos los pods para instalar y elimina el objective para el reactivo. De esta manera en cualquier lugar que construya el proyecto, también se eliminará el objective. Ahora, cuando compiles para Archivar, no fallará.

Espero que esto ayude a alguien. Tuve que eliminar todas las subspecs para que funcione:

https://github.com/airbnb/react-native-maps/issues/943#issuecomment-279882262