puedo para descargar actualizar ios objective-c xcode7 xcode7-beta4

ios - para - itunes



Advertencias de Xcode 7: el archivo de objeto se creó para una versión de iOS más nueva que la vinculada (6)

Recientemente integré Google Cloud Messaging en una aplicación dirigida a iOS 7 e iOS 8. Simplemente agarré Xcode 7 beta 4 para comenzar con el soporte de iOS 9, y ahora recibo un error del enlazador:

ld: warning: object file (.../Pods/GoogleInterchangeUtilities/Libraries /libProtocolBuffers.a(Descriptor.pb.o)) was built for newer iOS version (8.3) than being linked (7.0)

y un puñado más así, todo para partes de libProtocolBuffers.a.

¿Significa esto que se requiere iOS 8.3 para usar la biblioteca GCM? Si es así, ¿por qué Xcode 6 escupe felizmente el código que (por todas las apariencias en mis pruebas con dispositivos iOS 7) entregó notificaciones push a iOS 7.3 sin problemas?

Dado que son solo advertencias, aún puedo compilar bien, sin embargo, prefiero no enviar el código que está mal.

Editar: envié un correo electrónico a google y dijeron que las mejores personas lo investigarán. Mientras tanto, si estás leyendo esto y te molesta la advertencia, tal vez también envíes un correo electrónico para que se animen a lidiar con eso.


En destinos / Configuración de compilación / Vinculación / Otras banderas de vinculador , agregue

-w

silencia la advertencia para mí.


En mi caso, la razón fue que acabo de actualizar los pods luego cambié el deployment target a un nivel inferior al anterior y recibí tales advertencias. Ejecutar la actualización de pod nuevamente resuelve el problema.


En realidad, significa que el Objetivo de implementación mínimo de la biblioteca incluida era 8.3 y vincularlo con un Objetivo de implementación mínimo inferior produce esta advertencia.

La biblioteca no admite oficialmente objetivos inferiores a 8.3 en este caso. Si bien vincular esta biblioteca al destino con un Objetivo de implementación mínimo aún funcionará, podría producir fallas en el tiempo de ejecución, si se ejecuta cualquier código 8.3 solo en un dispositivo que ejecuta un sistema anterior a 8.3.

Hay una razón por la cual los desarrolladores establecen 8.3 como el objetivo mínimo y esta advertencia NO debe ignorarse. Puede ser inofensivo en este caso, ¡pero no es necesariamente inofensivo en otros casos!

Para corregir estas advertencias, use una versión anterior de la biblioteca o establezca su Objetivo de implementación mínima en 8.3.


Esto solo significa que una de las bibliotecas (Protocol Buffers here) de la que depende GCM se creó para 8.3 aunque es compatible con la versión min sdk de GCM, es decir, 7.0. XCode 7 es simplemente más severo y lo informa como una advertencia, pero siempre estuvo allí, simplemente no fue informado por versiones anteriores.

En general, esto es inofensivo, todo debería funcionar bien. Además, no hay mucho que pueda hacer a menos que Google parchee GCM construyendo todas sus dependencias con la versión min sdk (7.0).


Mi forma de arreglarlo:

  1. Compruebe que "Destino de implementación" es igual a "Plataforma" de Podfile
  2. Eliminar DerivedData (/ Users / yourUser / Library / Developer / Xcode)
  3. Instalación de pod (Terminal)
  4. Proyecto de limpieza / construcción

Ps puede agregar más información si es necesario.


Para su información, la última versión de los pods relevantes parece haber solucionado este problema.

Específicamente, parece que fue la actualización de GoogleInterchangeUtilities de 1.0.0 a 1.1.0 lo que funcionó.

Si está viendo esto, ¡una "actualización de pod" debería mejorarlo todo!