started pricing how ios crashlytics today-extension ios-extensions osx-extensions

pricing - ¿Cómo usar Crashlytics con iOS/OS X hoy en día para ver las extensiones?



fabric pricing (5)

Desde hoy, las extensiones se ejecutan como un proceso separado. Estoy seguro de que no registrarán ningún bloqueo fuera de la caja. Supongo que necesitamos inicializar Crashlytics en el widget por separado. Por ejemplo, en el método viewDidLoad del TodayViewController .

  • ¿Alguien ya está usando Crashlytics dentro de las extensiones de iOS / OS X? Si es así, ¿cómo lo implementaste?
  • También me pregunto si tendría sentido crear una aplicación separada en Crashlytics solo para la extensión.

Aquí está la propia guía de Twitter para implementarlo:

https://twittercommunity.com/t/integrate-fabric-crashlytics-with-ios-8-extension/28905

Entonces, copie las bibliotecas, por ejemplo, si está utilizando CocoaPods, puede agregar Fabric and Crashlytics al objetivo de la Extensión:

En podfile:

target :TodayExtension do pod ''Fabric'' pod ''Crashlytics'' end

y ejecute pod install . Y no olvide configurar Build Active Architecture Only en NO , o puede obtener errores de vinculador

Entonces en su TodayViewController:

#import <Fabric/Fabric.h> #import <Crashlytics/Crashlytics.h> ... -(id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; [Fabric with:@[CrashlyticsKit]]; return self; }

y copie el script de ejecución de Fabric en las fases de compilación a su objetivo de la Extensión de hoy, y copie la entrada de Fabric de la lista de información de la aplicación principal en la lista de información de su Extensión de hoy


El soporte de Crashlytics se puso en contacto conmigo y proporcionó estos pasos. Los probé y ahora funciona para mi aplicación iOS 8.

  1. Agregue también la Fase de compilación del script de ejecución de Crashlytics al destino de su extensión (copie / pegue lo mismo que agregó a su aplicación principal)

  2. Agregue Crashlytics.framework a las bibliotecas vinculadas de su extensión (por ejemplo, simplemente verifique el destino de la extensión en su inspector de archivos)

  3. Agregue Crashlytics.startWithAPIKey("yourApiKey") al método initWithCoder del controlador de vista de su extensión. (En la plantilla de extensión de hoy de Apple se llama TodayViewController de forma predeterminada)

    > Si aún no tiene un método initWithCoder , debería verse así después:

    required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) Crashlytics.startWithAPIKey("yourApiKey") }


Este es un manual de instrucciones descrito sobre cómo usar Crashlytics en las extensiones de iOS:

  • Agregue esta línea a su método Fabric.with([Crashlytics.self]) initWithCoder Fabric.with([Crashlytics.self])
  • Copie el Diccionario "Fabric" del Info.plist de su aplicación principal y péguelo en el Info.plist de su extensión.
  • Copie / pegue la Fase de compilación del script de ejecución del objetivo de su aplicación principal en la Fase de compilación del guión de ejecución de su extensión.

Y ... que bien te vas!


Gracias por todas las instrucciones, funciona bien en mi Extensión de Compartir.

Noté que para mi Extensión compartida, el panel de control de Fabric Answers no mostraba datos reales para:

  1. Usuarios activos
  2. Tiempo promedio total empleado en la aplicación por usuario

Lo hace para la aplicación compañera. Así que me preguntaba cómo determinaría esto el SDK de Respuestas. Lo más lógico parece monitorear las notificaciones de UIApplication. Dado que el ciclo de vida de una extensión está relacionado con un ViewController, estas notificaciones de UIApplication no se publican. Y por lo tanto, Fabric no sabe cuándo está activa la extensión.

Así que implementé la siguiente solución, que proporciona los datos anteriores en el Tablero de la estructura:

  1. En ''viewDidLoad'' del ViewController principal de Extensions, publique UIApplicationDidBecomeActiveNotification que activará el inicio de Fabric.
  2. Antes de cerrar la Extensión (a través de completeRequestReturningItems:completionHandler: o cancelRequestWithError: :) publique UIApplicationWillResignActiveNotification. Esto activará la parada de la tela.

Tenga en cuenta que hay un retraso entre la acción en el dispositivo y cuando los datos se vuelven visibles en el Tablero. Especialmente para usuarios activos . Se tarda unos 20-30 segundos después de que se presenta la extensión. Pero cuando se cierra la Extensión, puede tomar hasta 5 minutos antes de que disminuyan los Usuarios Activos.


La respuesta de maremmle también funciona si desea agregar Crashlytics para compartir extensiones en iOS 8.0+. Solo recuerda poner [Crashlytics startWithAPIKey:@"apiKey"]; Dentro del método init desde su primer ViewController.