LibAdIdAccess.a de Google Analytics no contiene código de bits

83

Xcode 7 beta 3 acaba de instalar algunos "componentes adicionales" (ahora versión 7.0 beta 3 (7A152u)), y ahora recibo un error del compilador:

ld: '/<abbreviated>/Vendor/Analytics/GoogleAnalytics/libAdIdAccess.a(TAGActualAdIdAccess.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Esta publicación de Google Code es la única mención que he encontrado para GA y bitcode.

Sería bueno si pudiera deshabilitarlo solo para esta biblioteca en lugar de deshabilitar el código de bits por completo. ¿Es eso posible?

Esta respuesta proporciona una solución para que el código de bits esté habilitado de forma predeterminada, y esto, en última instancia, puede ser un engaño de esa pregunta más genérica.

bdalziel
fuente
3
Sospecho que Google actualizará su fuente pública y Cocoapods cuando Xcode 7 sea definitivo.
Michael Dautermann
2
Eso es justo, mientras tanto, estoy deshabilitando el código de bits de forma predeterminada como indiqué en mi pregunta
bdalziel
3
Con la semilla Xcode 7.0 GM, todavía falla, pero aún no he visto una actualización de GA.
DiscDev
Por experiencia, GA podría tomar algunas semanas ...
Vinzius
1
@MichaelDautermann XCode7 e iOS9 están aquí y no hay nada nuevo de Google
Kubba

Respuestas:

76

Actualizar:

¡Buenas noticias para todos!

Google Analytics ahora es compatible con Bitcode con su versión 3.14. Puede obtenerlo de sus fuentes de descarga, sin embargo, aún no está incluido en Cocoapods.

Descarga del SDK de Google Analytics

Cambio de registro

Original:

Google necesita compilar su SDK de análisis en una biblioteca de código de bits. Sin embargo, de la experiencia anterior con Google actualizando sus bibliotecas a 64 bits, tomó más de medio año iirc.

Mi consejo es que si no es compatible con watchOS, podemos esperar, tengo que

  1. Configuración de construcción

  2. Habilitar código de bits

  3. Establecer en No

Si es compatible con watchOS, utilice una herramienta de análisis diferente por ahora.

Información extra:

Hay desarrolladores hablando de ello en un foro de Google aquí: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook y Fabric.io (Crashlytics, TwitterKit) ya se han actualizado para usar bitcode, por lo que técnicamente no debería ser demasiado difícil para Google seguir su ejemplo. Creo que este tipo de restricción es política. Los que tienen más que perder son nuestros usuarios.

David Wong
fuente
5
Por qué lo hacen, no son compatibles con iOS o actualizan sus herramientas para una nueva versión. Tenemos beta desde hace mucho tiempo y se lanzará en una semana más o menos
MKoosej
Sí, frustrante, ¿no? Hice las mismas preguntas cuando hubo la transición de 64 bits.
David Wong
Gracias por la información adicional en particular @DavidWong, y reiterando la respuesta común: stackoverflow.com/a/30856364/822164
bdalziel
2
Utilizando varios SDK de terceros para iOS. Google es el único que todavía no ha actualizado el suyo. Dejo caer el SDK de Google y probablemente no lo volveré a agregar. Demasiado lío.
Ville Laurikari
3
Cabe señalar que si está utilizando un pod de nivel superior, como Google/Analytics, entonces el código de bits no funcionará, incluso con 3.14. En su lugar, debe usar la GoogleAnalyticscápsula.
Cristik
4

Bienvenido de nuevo a 2013, como mencionó @ david-wong, Google tardó un año en admitir arm64. Siempre que Apple anuncia un cambio o un requisito en la cadena de herramientas, el equipo del SDK de Google ios tarda años en actualizar su biblioteca estática. Solo para establecer sus expectativas, recientemente reconocieron que la compatibilidad con el código de bits es un problema de "alta prioridad", a pesar de que la división de aplicaciones / código de bits se anunció el 8 de junio de 2015. Si está utilizando GA en su objetivo principal, GA lo impedirá de utilizar el beneficio extremadamente valioso del corte de arquitectura.

Deshabilitar el código de bits no es una solución alternativa, solo deshabilitar el soporte de código de bits. Es de esperar que alguien que administra GA vea esto y decida hacer de ios un ciudadano de primera clase.

Ryan Romanchuk
fuente
2

Google acaba de actualizar los SDK de Google Analytics y Google Tag Manager (versión 3.14) para admitir Bitcode, por lo que puede actualizar las bibliotecas y compilar su aplicación utilizando la marca "Habilitar Bitcode - Sí".

Descargar pagina

Enlace directo

Igor Akimov
fuente
1
Cabe señalar que si está utilizando un pod de nivel superior, como Google/Analytics, entonces el código de bits no funcionará, incluso con 3.14. En su lugar, debe usar la GoogleAnalyticscápsula.
Cristik
2

Actualice su sdk de GoogleAnalytics usando pod.

  1. Terminal abierto
  2. Vaya al directorio de su proyecto
  3. pod init
  4. Abra el archivo de pod creado en el directorio de su proyecto
  5. Escribe las siguientes líneas

    platform :ios, '10.0'
    
    target “GoogleAnalyticsTestApp” do
       pod 'GoogleAnalytics'
       pod 'GoogleIDFASupport'
    end
    

Esto resolverá el error. Desde los siguientes enlaces puede agregar la API de Google:

1. http://cocoapods.org/pods/GoogleAnalytics

2. http://developers.google.com/ios/guides/cocoapods

Rubaiyat Jahan Mumu
fuente
[ cocoapods.org/pods/GoogleAnalytics] [ developers.google.com/ios/guides/cocoapods] Desde este enlace puede agregar cualquier API de Google para iOS
Rubaiyat Jahan Mumu
1

Si está utilizando cocoapods, puede agregar esto al final del 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

Esto se repetirá a través de todos los pods y marcará ENABLE_BITCODE como desactivado. Naturalmente, no podrá compilar para el reloj / apple tv (ya que lo requieren en algunas versiones).

un poco
fuente