Saltar al contenido

Preguntas Frecuentes del SDK de iOS

Preguntas frecuentes sobre la integración de iOS

Anchor link to

P: ¿Cómo puedo instalar el SDK de Pushwoosh en mi proyecto de iOS?

Anchor link to

Puedes integrar el SDK de Pushwoosh usando Swift Package Manager o CocoaPods.

P: ¿Cómo instalo el SDK de Pushwoosh usando Swift Package Manager?

Anchor link to

En Xcode, ve a la sección Package Dependencies y añade el paquete usando la siguiente URL: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

P: ¿Cómo instalo el SDK de Pushwoosh usando CocoaPods?

Anchor link to

Abre el Podfile de tu proyecto y añade la línea pod 'PushwooshXCFramework'. Luego, ejecuta el comando pod install en la terminal.

P: ¿Qué capacidades necesito añadir a mi proyecto para habilitar las Notificaciones Push?

Anchor link to

En la sección Signing & Capabilities de la configuración de tu proyecto, necesitas añadir las capacidades Push Notifications y Background Modes. Al añadir Background Modes, asegúrate de marcar la casilla para Remote notifications.

P: ¿Qué capacidad adicional se requiere para las Notificaciones Sensibles al Tiempo (Time Sensitive Notifications)?

Anchor link to

Si tienes la intención de usar Notificaciones Sensibles al Tiempo (iOS 15+), también necesitas añadir la capacidad Time Sensitive Notifications.

P: ¿Dónde necesito añadir el código de inicialización de Pushwoosh?

Anchor link to

El código de inicialización debe añadirse a tu clase AppDelegate.

P: ¿Qué código de inicialización debo añadir en el AppDelegate de SwiftUI?

Anchor link to

Por favor, consulta el ejemplo de código Swift proporcionado para integrar Pushwoosh en un proyecto SwiftUI.

P: ¿Qué código de inicialización debo añadir en un AppDelegate estándar de Swift?

Anchor link to

Por favor, consulta el ejemplo de código Swift proporcionado para integrar Pushwoosh en un proyecto Swift estándar.

P: ¿Qué código de inicialización debo añadir en un AppDelegate de Objective-C?

Anchor link to

Por favor, consulta el ejemplo de código Objective-C proporcionado para integrar Pushwoosh en un proyecto de Objective-C.

P: ¿Qué claves necesito añadir a mi archivo Info.plist?

Anchor link to

Necesitas añadir la clave Pushwoosh_APPID establecida con tu Código de Aplicación (Application Code) y la clave PW_API_TOKEN establecida con tu Token de API en el archivo Info.plist de tu aplicación.

P: ¿Cuál es el propósito del seguimiento de la entrega de mensajes?

Anchor link to

Pushwoosh admite el seguimiento de eventos de entrega para notificaciones push utilizando la Notification Service Extension.

P: ¿Cómo añado una Notification Service Extension a mi proyecto?

Anchor link to

En Xcode, ve a File > New > Target…, elige Notification Service Extension y presiona Next. Introduce un nombre para el target y presiona Finish. Cuando se te pida activarlo, presiona Cancel.

P: ¿Cómo añado el SDK de Pushwoosh a la Notification Service Extension?

Anchor link to

Añade el fragmento de código Swift u Objective-C proporcionado al archivo principal .swift o .m de tu Notification Service Extension. Este código utiliza PWNotificationExtensionManager para gestionar la solicitud de notificación.

P: ¿Cuál es el propósito de los App Groups?

Anchor link to

La capacidad de App Groups es necesaria para permitir que la Notification Service Extension se comunique con la aplicación principal.

P: ¿Cómo habilito los App Groups para mi target principal y la Notification Service Extension?

Anchor link to

Para ambos targets, ve a Signing & Capabilities, añade la capacidad App Groups y crea un nuevo grupo presionando el botón +. Asegúrate de que el nombre del grupo comience con group. y usa el mismo nombre de grupo para ambos targets.

P: ¿Qué claves necesito añadir al Info.plist de mi target principal para los App Groups?

Anchor link to

En el Info.plist de tu target principal, añade la clave PW_APP_GROUPS_NAME y establece su valor con el nombre de tu grupo de App Groups.

P: ¿Qué claves necesito añadir al Info.plist de mi Notification Service Extension?

Anchor link to

En el Info.plist de tu Notification Service Extension, añade la clave PW_APP_GROUPS_NAME (establecida con el nombre de tu App Groups) y la clave Pushwoosh_APPID (establecida con tu Código de Aplicación).

P: ¿Cómo verifico la integración de Pushwoosh?

Anchor link to

Después de compilar y ejecutar tu proyecto, ve al Panel de Control de Pushwoosh y envía una notificación push a tu aplicación. Deberías ver la notificación aparecer en tu dispositivo.

P: ¿Cuáles son los dos callbacks principales para gestionar las notificaciones push en el SDK de Pushwoosh?

Anchor link to

Los dos callbacks principales son onMessageReceived y onMessageOpened.

P: ¿Cuándo se invoca el callback onMessageReceived?

Anchor link to

El método onMessageReceived se llama cuando la aplicación recibe una notificación push.

P: ¿Cuándo se invoca el callback onMessageOpened?

Anchor link to

El método onMessageOpened se llama cuando el usuario interactúa con una notificación push y la abre.

P: ¿Cómo puedo acceder al payload de una notificación push recibida o abierta?

Anchor link to

Se puede acceder al payload de un objeto PWMessage (pasado a los callbacks onMessageReceived y onMessageOpened) a través de su propiedad payload.

P: ¿Cómo puedo establecer un ID de usuario (User ID) en Pushwoosh?

Anchor link to

Usa el método setUserId(_:) del objeto Pushwoosh.sharedInstance(), pasando el ID del usuario como argumento.

P: ¿Cómo puedo establecer la dirección de correo electrónico de un usuario en Pushwoosh?

Anchor link to

Usa el método setEmail(_:) del objeto Pushwoosh.sharedInstance(), proporcionando el correo electrónico del usuario.

¿Cómo puedo establecer información adicional del usuario como tags en Pushwoosh?

Anchor link to

Usa el método setTags(_:) del objeto Pushwoosh.sharedInstance(), pasando un diccionario donde las claves son los nombres de los tags y los valores son los valores de los tags correspondientes.

¿Cómo puedo rastrear un evento de usuario con atributos adicionales?

Anchor link to

Usa el método postEvent(_:withAttributes:) de PWInAppManager.shared(), proporcionando el nombre del evento (p. ej., "login") y un diccionario de atributos (p. ej., "name", "last_login").

P: ¿Cómo puedo rastrear un evento de compra de un usuario con detalles del producto?

Anchor link to

Usa el método postEvent(_:withAttributes:) de PWInAppManager.shared() con el nombre de evento "purchase" y un diccionario que contenga detalles del producto como "product_id", "product_name", "price" y "quantity".

P: ¿Cómo configuro un delegado para gestionar la presentación de rich media?

Anchor link to

En tu view controller u otra clase apropiada, adáptate al protocolo PWRichMediaPresentingDelegate y establece la propiedad delegate de PWRichMediaManager.shared() a tu instancia conforme.

P: ¿Cómo puedo configurar el estilo de presentación de los rich media?

Anchor link to

Usa el objeto PWModalWindowConfiguration.shared() para configurar propiedades como la posición de la ventana modal y las animaciones de presentación/ocultación usando el método configureModalWindow(with:present:dismiss:).

P: ¿A qué información puedo acceder en los métodos delegados de rich media?

Anchor link to

Los métodos delegados proporcionan acceso al objeto PWRichMedia, que contiene información sobre el contenido de rich media, incluido su pushPayload. El método presentingDidFailForRichMedia:withError: también proporciona un objeto Error que describe el fallo.

Solución de problemas

Anchor link to

P: Error “Your provisioning profile does not have APS entry”

Anchor link to

Si ves el mensaje de error “Your provisioning profile does not have APS entry.”, asegúrate de que tu perfil de aprovisionamiento sea compatible con push y tenga la cadena aps-environment con el valor production o development. La forma más fácil de comprobarlo es abrir el perfil de aprovisionamiento móvil en cualquier editor de texto y buscar la cadena aps-environment. Debería estar ahí.

Si está, y sigues recibiendo el error, significa que Xcode sigue seleccionando un perfil “no compatible con push”. Por favor, asegúrate de firmar con el correcto; a veces, si tienes dos perfiles para el mismo App ID, Xcode se lía y firma con el antiguo.

Los pasos recomendados son:

  1. Eliminar todos los perfiles de Xcode;
  2. Añadir el único y nuevo perfil;
  3. Recompilar la aplicación.

P: ¿Qué aspecto tienen el push token de iOS y el hwid?

Anchor link to

Los push tokens de dispositivos iOS son cadenas con 64 símbolos hexadecimales. Ejemplo de push token:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
Asegúrate de que los push tokens de iOS que utilizas al dirigirte a dispositivos específicos en tus solicitudes de API estén en minúsculas.

Pushwoosh utiliza IDFV como el HWID del dispositivo. Ten en cuenta que puede cambiar en caso de que el usuario reinstale todas las aplicaciones de un proveedor específico.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

P: ¿Cómo activo y desactivo el banner cuando mi aplicación se está ejecutando?

Anchor link to

Por defecto, nuestro último SDK de iOS muestra el banner de notificación cuando la aplicación se está ejecutando en primer plano.
Puedes controlar este comportamiento cambiando los siguientes flags en el Info.plist:

Flag Pushwoosh_ALERT_TYPE – tipo string, los valores son:

  • BANNER – valor por defecto, muestra una alerta de banner en la aplicación
  • ALERT – notificación de alerta
  • NONE – no mostrar notificaciones cuando la aplicación está en primer plano

P: ¿Cómo obtengo el push token de mi dispositivo iOS para usarlo en Dispositivos de Prueba (Test Devices)?

Anchor link to

Para obtener el push token de tu dispositivo iOS,

  1. Abre Xcode => Devices & Simulators;
  2. Conecta el dispositivo de prueba a tu ordenador;
  3. Selecciona tu dispositivo conectado en la lista de dispositivos de la izquierda;
  4. Haz clic en el botón Open Console.

Inicia la aplicación para la que necesitas el push token del dispositivo y localiza tu push token de 64 caracteres hexadecimales en la línea “Registered for push notifications”:

P: ¿Por qué los badges no se borran después de desinstalar mi aplicación y reinstalarla en un corto período de tiempo?

Anchor link to

Es un comportamiento esperado: los badges son gestionados por el propio iOS y sus valores se almacenan en las preferencias de la aplicación, que no se eliminan instantáneamente cuando desinstalas tu aplicación. El valor de un badge permanece allí durante algún tiempo en caso de reinstalación inmediata, lo que resulta en que se muestren los mismos badges después de reinstalar una aplicación.