Envío de la aplicación iOS: falta la compatibilidad con 64 bits


91

Envié una aplicación ayer para su revisión, sin ningún problema. Entonces me di cuenta de que tenía una pequeña solución que hacer (cambiar el nivel de zoom máximo de un mapa de 19 a 18, nada más), así que eliminé el binario de iTunes Connect e intenté volver a enviarlo.

Ahora tengo esta advertencia:

warning_xcode

No entiendo por qué, ya que mis arquitecturas son:

  • arquitecturas: armv7
  • arquitecturas válidas: armv6, armv7, armv7s, arm64

La aplicación funciona bien en el simulador. Si intento usar las arquitecturas estándar (armv7, arm64) como se recomienda en la advertencia, la aplicación no se compilará y obtengo:

  • Símbolos no definidos para la arquitectura x86_64
  • ld: símbolo (s) no encontrado para la arquitectura x86_64

Estoy usando lib route-me y configuro la misma configuración de arquitectura.


Nosotros también tenemos este problema. :(
Azik Abdullah

¿También desde ayer solo?
Tim Autin

1) intente borrar DerivedData para Xcode después de cambiar eso; 2) Tal vez está usando un viejo externa API, SDK, marco, etc
TonyMkenu

@Tim ¿Te las arreglaste para arreglar esto? ¿Puedes publicar una solución para eso?
user2056563

Hola, lo siento, no encontré la solución y ya no estoy trabajando en este proyecto. Por ahora es solo una advertencia, así que he podido enviar la aplicación.
Tim Autin

Respuestas:


106

Utilice " Standard architectures" así:

  • Arquitectura: "Arquitecturas estándar" arm7, arm64
  • Arquitecturas válidas: " arm64 ", armv7 ...
  • Construya solo arquitectura activa - NO (especialmente ... si su dispositivo conectado no es compatible con arm64)

Me gusta esto:

ingrese la descripción de la imagen aquí

  • Además, se sabe que desconectar iphones y ipads del mac ayuda, especialmente si son versiones de 32 bits.

2
Gracias por su respuesta, pero como se indica en mi pregunta, ya lo intenté y el proyecto no se compila con esta configuración: /
Tim Autin

3
@Tim, sí, yo también tuve armv7 and arm64en Architechtures. Aún así, se produce una advertencia de soporte faltante de 64 bits al validar la aplicación para su envío.
Azik Abdullah

@NAZIK ¿tienes arm64 en ambas líneas (Arquitecturas y Arquitecturas Válidas)? Tuve el mismo error y esta fue la solución
TonyMkenu

@Tim intente limpiar su DerivedData y verifique su último marco externo o SDK si tienen soporte de 64 bits
TonyMkenu

3
Además, asegúrese de que su dispositivo NO esté conectado al archivar la compilación final. Ver @powertoold respuesta abajo ( stackoverflow.com/a/26848865/1715004 )
Filipe Borges

68

Después de confirmar las arquitecturas correctas, asegúrese de que su dispositivo NO esté conectado a su computadora al ARCHIVAR la compilación final para enviarla a la App Store.

La razón por la que aparece esta advertencia es porque el DISPOSITIVO que ha conectado probablemente no sea compatible con arm64.


4
¡Felicitaciones! : D me has ahorrado tiempo
Vaibhav Limbani

1
¡¡Gran ayuda !! Me ahorró mucho tiempo en este. Buen consejo para actualizar aplicaciones antiguas.
Harry

Creo que puede mantener conectados sus dispositivos que no sean de 64 bits si cambia la configuración de compilación Build Active Architecture Onlya No. Esto obligará a xcode a compilar el binario de 64 bits independientemente del dispositivo que esté conectado.
jxmallett

3
Además de la respuesta de @jxmallett, asegúrese de que su Archivo de configuración de Scheme esté configurado en Release, en el cual el Build Active Architectureestá configurado en No. Establecer esquema de archivo
KarenAnne

1
Para su información, tuve que desconectar mi dispositivo, cambiar al simulador y luego volver a "Dispositivo iOS" para que esto funcione.
nwkeeley

37

Como escribió Tony, es importante tener en ambas líneas esos escenarios. Dado que mi proyecto (y obviamente el suyo) se creó antes de que se agregara arm64 al estándar, no se refleja en "Arquitecturas válidas" incluso si es muestra como Estándar.

Lo que hice:

  • Fui a la configuración del proyecto (frente a destino)
  • Mecanografiado "arm64" en las arquitecturas válidos (se refleja automáticamente en objetivos y esquemas

Después de limpiar / construir, incluso recibo algunas advertencias sobre la conversión incorrecta de flotador a CGFloat, etc., por lo que obviamente se aplicó la configuración.

¡La advertencia de validación también desapareció!

ingrese la descripción de la imagen aquí


1
> no se refleja en "Arquitecturas válidas" incluso si se muestra como estándar. Este era el punto para mí. ¡Gracias!
Romain

1
En caso de que ayude a otros, tuve que cambiar tanto en Project como en Target para empezar a trabajar
djburdick

@djburdick Gracias. Eso funcionó para mí cuando nada más lo hizo.
Dave Chambers

27

Desenchufe su dispositivo físico de Mac. En XCode en la lista de dispositivos, elija Dispositivo iOS y vuelva a crear Archivo. Funcionó para mí.


5

Hoy resuelvo ese problema con los siguientes pasos:

Configuración del edificio:

Arquitecturas: arquitecturas estándar (arm7, arm64) - $ (ARCH_STANDARD)

Arquitecturas válidas: armv7 armv7s arm64

  1. Limpia y crea tu aplicación con el iPhone conectado
  2. Desconecte su iPhone y verifique la barra superior si está en "Dispositivo iOS"
  3. Archivo
  4. Validar y enviar

@ Timuçin. Perdón por mi respuesta tardía, tienes razón es: armv7 armv7s arm64.
Leonel Folmer


2

Está bien, esto fue una locura. Probé cada una de las respuestas. Pero funcionó solo cuando lo coloqué arm64antes armv7yarmv7s en Arquitecturas válidas.

PD: xcode version : 7.2


1
Sip. solo entonces y solo después de conectar un dispositivo se mostró el registro real de errores. Luego aparecieron algunas líneas de código que están desaprobadas y requeridas (en rojo) de reparación y algunos problemas con la biblioteca RSA.
maxweber

1

Resolví el problema cambiando,

Arquitecturas: arm7, arm64

Arquitectura válida: arm7, arm64

Construir solo arquitectura activa: Sí


1

Envié el éxito por configuración como la imagen: ingrese la descripción de la imagen aquí

(Archivado con dispositivo real)


1
Debería establecer el modo de lanzamiento en no
ZYiOS

1

Se deshizo de todas las advertencias. Pasé por todo una y otra vez. Encontré la respuesta de una palabra aquí arriba.

"Construya solo arquitectura activa - NO (especialmente ... si su dispositivo conectado no es compatible con arm64)"

Mi iPad no es de 64 bits. ¡Ponga NO para Build Active Architecture y mi envío funcionó!


0

Cambie su objetivo de desarrollo de iOS a al menos 5.1.1 o, alternativamente, elimine la configuración de arquitecturas estándar y vuelva a aplicarla. Es posible que haya visto una advertencia de que arm64 no es compatible con su objetivo de compilación. En la página de descripción general, compruebe la configuración del "destino de implementación" de la compilación y del destino. En mi caso, el objetivo era 6.0, pero el proyecto era 5.0.

Además, marque "Arquitecturas válidas" tanto en su objetivo como en su proyecto. Tenía la configuración correcta en el proyecto pero no en el objetivo. Después de esto, funcionó para mí.

Cambie entre proyecto / objetivo en la página de descripción general en la esquina superior izquierda del cuadro.


¿Realmente te refieres a 5.1.1? 5.1 ¿no es lo suficientemente reciente?
Dirk

Ha sido un largo tiempo. No sé ni recuerdo la lógica de esto. Simplemente siga los pasos y algo puede volver a su lugar correcto. Juega con las arquitecturas y todas las páginas mencionadas.
user1122069

0

Marque la opción Construir arquitectura activa. Póngalo en NO. Esto funciona para mi.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.