Preguntas Frecuentes del SDK de iOS
Preguntas frecuentes sobre la integración de iOS
Anchor link toP: ¿Cómo puedo instalar el SDK de Pushwoosh en mi proyecto de iOS?
Anchor link toPuedes 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 toEn 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 toAbre 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 toEn 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 toSi 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 toEl 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 toPor 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 toPor 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 toPor 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 toNecesitas 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 toPushwoosh 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 toEn 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 toAñ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 toLa 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 toPara 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 toEn 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 toEn 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 toDespué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 toLos dos callbacks principales son onMessageReceived y onMessageOpened.
P: ¿Cuándo se invoca el callback onMessageReceived?
Anchor link toEl método onMessageReceived se llama cuando la aplicación recibe una notificación push.
P: ¿Cuándo se invoca el callback onMessageOpened?
Anchor link toEl 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 toSe 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 toUsa 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 toUsa 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 toUsa 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 toUsa 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 toUsa 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 toEn 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 toUsa 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 toLos 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 toP: Error “Your provisioning profile does not have APS entry”
Anchor link toSi 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:
- Eliminar todos los perfiles de Xcode;
- Añadir el único y nuevo perfil;
- Recompilar la aplicación.
P: ¿Qué aspecto tienen el push token de iOS y el hwid?
Anchor link toLos 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 toPor 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ónALERT– notificación de alertaNONE– 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 toPara obtener el push token de tu dispositivo iOS,
- Abre Xcode => Devices & Simulators;
- Conecta el dispositivo de prueba a tu ordenador;
- Selecciona tu dispositivo conectado en la lista de dispositivos de la izquierda;
- 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 toEs 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.