google ios swift google-analytics cocoapods

google - firebase analytics ios



No puedo encontrar encabezados para GoogleAnalytics-iOS-SDK con Cocoapods 0.37, Swift, frameworks (4)

Uso de vainas de cacao 0.37.0 en un proyecto Swift, con use_frameworks! establecido en el archivo pod, no puedo acceder a los archivos de encabezado para el pod GoogleAnalytics-iOS-SDK.

¿Cómo debo acceder a los encabezados del pod de Google Analytics en mi aplicación?

Yo he tratado;

import GoogleAnalytics_iOS_SDK

En un archivo Swift, estilo cocoapods 0.36. Pero ya no hay un marco creado, así que no es bueno.

#import <GoogleAnalytics_iOS_SDK/GAI.h>

En el encabezado de puente, pero no funciona (¿no hay un mapa de módulos?)

He leído que el comportamiento de los pods que solo incluyen encabezados en sus ''sourse_files'' cambió en cocoapods 0.37 (vea este comentario ) . Esto parece ser en respuesta a los problemas que use_frameworks causó con estos pods en 0.36 (vea esta pregunta de SO) .

Con este cambio en el comportamiento de Cocoapod, la biblioteca estática se integra correctamente (no fue con 0.36), los símbolos se compilan en la aplicación y están disponibles en tiempo de ejecución. Pero no tengo acceso a los encabezados.


Este es un error en Cocoapods 0.37.0. Se ha registrado en su rastreador como problema # 3499 .

Solución

  • Agregue $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK a las User Header Search Paths (configuradas como Recursivas) en la Build Settings del objetivo de la aplicación.
  • Consulte el encabezado de Google Analytics directamente en el encabezado de puente con #import "GAI.h"

No sé si esta es la respuesta correcta o no, pero la forma en que funcionó fue importar manualmente libGoogleAnalyticsServices.a y no a través de cocoapods.

Localice libGoogleAnalyticsServices.a y arrástrelo al proyecto, luego agréguelo a Linked Frameworks and Libraries (si no está ya allí) y libGoogleAnalyticsServices.a para libGoogleAnalyticsServices.a . No te olvides de eliminarlo de tu Podfile .

editar:
No olvide agregar los archivos de encabezado a su encabezado de puente


Otro truco es agregar rutas relativas largas al encabezado de puente.

Esto evita tener que realizar cambios en la configuración del proyecto, que pueden anularse la próxima vez que ejecute `pod install '':

#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h" #import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h" #import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h"

También funciona cuando se ejecutan las pruebas de unidad, lo que no probé con otra solución.


Tuve un problema similar en CocoaPods 0.39.0.

$ (heredado) en la configuración de compilación ''OTHER_LDFLAGS'' lo resolvió.

https://.com/a/32004207/3129306