Xcode – Error ITMS-90635 – Mach-O inválido en package: envío a la tienda de aplicaciones

Acabo de recibir este error al enviar una aplicación a la tienda de aplicaciones.

introduzca la descripción de la imagen aquí

¿Esto significa que necesito establecer ENABLE_BITCODE para todas las dependencies? Intenté eso, pero luego obtuve errores diciendo que las dependencies no eran compatibles con bitcode (o algo así) …

Tuve el mismo problema esta mañana. De hecho, la respuesta está en el error: "Verifique que todos los objectives de una plataforma tengan un valor consistente para la configuration de compilation ENABLE_BITCODE"

Tenía un objective (con ENABLE_BITCODE configurado en NO), utilizando varios pods con ENABLE_BITCODE establecido en YES. Entonces, todo lo que tuve que hacer es establecer ENABLE_BITCODE en YES en mi objective de proyecto. Pero supongo que tiene una opción, también puede establecer ENABLE_BITCODE en NO en todas las libs que esté utilizando.

La solución más fácil y común:

Puede desmarcar "Incluir código de bits" al enviar la aplicación a través de Xcode. desmarca la casilla

Si usa xcodebuild , puede usar pasar una exportOptionsPlist con el valor de uploadBitcode establecido en false. En mi caso, estamos usando xctool para build la aplicación y no tenemos la capacidad de pasar una list de exportOptionsPlist , por lo que tuvimos que eliminar el bitcode de todos nuestros frameworks.


Si alguien está usando cocoapods y desea deshabilitar bitcode para sus frameworks, simplemente puede agregar lo siguiente a su podfile:

 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end 

A través de https://stackoverflow.com/a/32685434/1417922


Para agregar un poco más de aclaración sobre lo que está sucediendo con este problema:

Parece que Apple acaba de comenzar a hacer cumplir esto ayer. Si su binary principal tiene un código de bits deshabilitado, pero incluye una biblioteca estática o marco que tiene habilitado el código de bits, fallará la validation. Va a la inversa también: si su binary principal tiene habilitado el código de bits, pero incluye una biblioteca / marco que tiene deshabilitado el código de bits, fallará la validation.

Tuve algunas dependencies de GoogleMaps y Amazon que hicieron que no fuera trivial cambiar todo para habilitar bitcode, así que simplemente lo deshabilité y eliminé bitcode de una biblioteca estática que había importado en mi proyecto. Puede eliminar el código de bits de cualquier binary mediante el siguiente command

 $ xcrun bitcode_strip -r {Framework}.dylib -o tmp.dylib $ mv tmp.dylib {Framework}.dylib 

https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html

Si bien lo anterior son soluciones al problema, no estoy de acuerdo con que si el binary principal tiene bitcode deshabilitado, todos los binarys incluidos también lo necesitarán. Bitcode es solo un código IR que Apple puede usar para adelgazar, ¿por qué no lo eliminan de otros binarys (que supongo que es lo que hicieron anteriormente)? Esto no tiene mucho sentido para mí.

Hilo de Apple https://forums.developer.apple.com/thread/48071

Acabo de desmarcar "include bitcode" y comenzó a cargar

Para carthage

  1. Abra sus bibliotecas en la carpeta de su proyecto (Carthage-> Contratos -> [nombre lib)]
  2. Luego abre cada lib en Xcode
  3. Establecer habilitar código de bits: no en la configuration de compilation introduzca la descripción de la imagen aquí
  4. Hazlo por cada lib en tu list
  5. Construya carthage carthage build --platform xxx

Luego puede archivar y enviar correctamente a la Appstore.

Estábamos recibiendo el mismo error "Xcode – Error ITMS-90635 – Mach-O inválido en package – enviar a la tienda de aplicaciones" desde el viernes pasado (3 de junio de 2016) … usé los 2 pasos a continuación para hacer esto

Paso 1:
Se agregó el código al file pod para marcar 'ENABLE_BITCODE' = 'NO' en los pods.

 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end 

Paso 2:
Marcado 'ENABLE_BITCODE' = 'NO' en los pods para el proyecto.

Nota: 'ENABLE_BITCODE' = 'YES' con marcar 'ENABLE_BITCODE' = 'YES' en los pods y también en mi proyecto, pero como estamos usando twillio framework para llamar que tiene un flag -read_only_relocs que no permite la compilation con 'ENABLE_BITCODE' = 'YES' . Por lo tanto, si su aplicación no utiliza ninguno de esos frameworks con -read_only_relocs , puede continuar haciendo 'ENABLE_BITCODE' = 'YES' ya que será bueno para su aplicación.

Para aquellos que tienen un error de compilation después de configurar "Activar código de bits" en Sí. Tengo que actualizar toda la biblioteca. Pero la parte más fácil es utilizar Cocoapod. Por lo tanto, actualice todo su proyecto de pod: (uno por uno) o todos

Luego, establezca Habilitar código de bits en "No" antes de archivar.

Entonces Archivo >> Cargar >> Pasará este error.

Aclamaciones.

Tuve el mismo problema con el proyecto "ENABLE_BITCODE = YES" y las dependencies "ENABLE_BITCODE = YES" en mi CI con Xcode 7.3. La solución estaba actualizando Xcode a la última versión disponible (7.3.1)