Preguntas frecuentes sobre el 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 toPuede integrar el SDK de Pushwoosh utilizando Swift Package Manager o CocoaPods.
P: ¿Cómo instalo el SDK de Pushwoosh utilizando Swift Package Manager?
Anchor link toEn Xcode, navegue a la sección Package Dependencies y agregue el paquete utilizando la siguiente URL: https://github.com/Pushwoosh/Pushwoosh-XCFramework.
P: ¿Cómo instalo el SDK de Pushwoosh utilizando CocoaPods?
Anchor link toAbra el Podfile de su proyecto y agregue la línea pod 'PushwooshXCFramework'. Luego, ejecute el comando pod install en la terminal.
P: ¿Qué capacidades necesito agregar a mi proyecto para habilitar las Notificaciones Push?
Anchor link toEn la sección Signing & Capabilities de la configuración de su proyecto, necesita agregar las capacidades Push Notifications y Background Modes. Al agregar Background Modes, asegúrese 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 tiene la intención de usar Notificaciones Sensibles al Tiempo (iOS 15+), también necesita agregar la capacidad Time Sensitive Notifications.
P: ¿Dónde necesito agregar el código de inicialización de Pushwoosh?
Anchor link toEl código de inicialización debe agregarse a su clase AppDelegate.
P: ¿Qué código de inicialización debo agregar en el AppDelegate de SwiftUI?
Anchor link toConsulte el ejemplo de código Swift proporcionado para integrar Pushwoosh en un proyecto de SwiftUI.
P: ¿Qué código de inicialización debo agregar en un AppDelegate estándar de Swift?
Anchor link toConsulte el ejemplo de código Swift proporcionado para integrar Pushwoosh en un proyecto estándar de Swift.
P: ¿Qué código de inicialización debo agregar en un AppDelegate de Objective-C?
Anchor link toConsulte el ejemplo de código Objective-C proporcionado para integrar Pushwoosh en un proyecto de Objective-C.
P: ¿Qué claves necesito agregar a mi archivo Info.plist?
Anchor link toNecesita agregar la clave Pushwoosh_APPID establecida con su Código de Aplicación y la clave PW_API_TOKEN establecida con su Token de API en el archivo Info.plist de su 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 agrego una Notification Service Extension a mi proyecto?
Anchor link toEn Xcode, vaya a File > New > Target…, elija Notification Service Extension y presione Next. Ingrese un nombre de destino y presione Finish. Cuando se le pida activarlo, presione Cancel.
P: ¿Cómo agrego el SDK de Pushwoosh a la Notification Service Extension?
Anchor link toAgregue el fragmento de código Swift u Objective-C proporcionado al archivo principal .swift o .m de su Notification Service Extension. Este código utiliza PWNotificationExtensionManager para manejar 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 objetivo principal y la Notification Service Extension?
Anchor link toPara ambos objetivos, vaya a Signing & Capabilities, agregue la capacidad App Groups y cree un nuevo grupo presionando el botón +. Asegúrese de que el nombre del grupo comience con group. y use el mismo nombre de grupo para ambos objetivos.
P: ¿Qué claves necesito agregar al Info.plist de mi objetivo principal para los App Groups?
Anchor link toEn el Info.plist de su objetivo principal, agregue la clave PW_APP_GROUPS_NAME y establezca su valor con el nombre de su grupo de App Groups.
P: ¿Qué claves necesito agregar al Info.plist de mi Notification Service Extension?
Anchor link toEn el Info.plist de su Notification Service Extension, agregue la clave PW_APP_GROUPS_NAME (establecida con el nombre de su App Groups) y la clave Pushwoosh_APPID (establecida con su Código de Aplicación).
P: ¿Cómo verifico la integración de Pushwoosh?
Anchor link toDespués de compilar y ejecutar su proyecto, vaya al Panel de Control de Pushwoosh y envíe una notificación push a su aplicación. Debería ver aparecer la notificación en su dispositivo.
P: ¿Cuáles son los dos callbacks principales para manejar 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 y abre una notificación push.
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 en Pushwoosh?
Anchor link toUse 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 toUse 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 etiquetas (tags) en Pushwoosh?
Anchor link toUse el método setTags(_:) del objeto Pushwoosh.sharedInstance(), pasando un diccionario donde las claves son los nombres de las etiquetas y los valores son los valores de etiqueta correspondientes.
¿Cómo puedo rastrear un evento de usuario con atributos adicionales?**
Anchor link toUse 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 usuario con detalles del producto?
Anchor link toUse 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 manejar la presentación de rich media?
Anchor link toEn su view controller u otra clase apropiada, adáptese al protocolo PWRichMediaPresentingDelegate y establezca la propiedad delegate de PWRichMediaManager.shared() a su instancia conforme.
P: ¿Cómo puedo configurar el estilo de presentación de rich media?
Anchor link toUse el objeto PWModalWindowConfiguration.shared() para configurar propiedades como la posición de la ventana modal y las animaciones de presentación/ocultación utilizando el método configureModalWindow(with:present:dismiss:).
P: ¿A qué información puedo acceder en los métodos del delegado de rich media?**
Anchor link toLos métodos del delegado 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 “Su perfil de aprovisionamiento no tiene entrada APS”
Anchor link toSi ve el mensaje de error “Su perfil de aprovisionamiento no tiene entrada APS.”, asegúrese de que su 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 verificarlo es abrir el perfil de aprovisionamiento móvil en cualquier editor de texto y buscar la cadena aps-environment. Debería estar allí.
Si está, y sigue recibiendo el error, significa que XCode todavía está seleccionando un perfil “no compatible con push”. Por favor, asegúrese de firmar con el correcto; a veces, si tiene dos perfiles para el mismo App ID, XCode se confunde y firma con el antiguo.
Los pasos recomendados son:
- Eliminar todos los perfiles de XCode;
- Agregar el único y nuevo perfil;
- Recompilar la aplicación.
P: ¿Cómo se ven 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úrese de que los push tokens de iOS que utiliza al dirigirse a dispositivos específicos en sus solicitudes de API estén en minúsculas.
Pushwoosh utiliza IDFV como el HWID del dispositivo. Tenga 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.
Puede controlar este comportamiento cambiando las siguientes banderas en el Info.plist:
Bandera Pushwoosh_ALERT_TYPE – tipo cadena, los valores son:
BANNER– valor predeterminado, 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?
Anchor link toPara obtener el push token de su dispositivo iOS,
- Abra Xcode => Devices & Simulators;
- Conecte el dispositivo de prueba a su computadora;
- Seleccione su dispositivo conectado en la lista de dispositivos a la izquierda;
- Haga clic en el botón Open Console.

Inicie la aplicación para la cual necesita el push token del dispositivo y localice su 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 manejados por el propio iOS y sus valores se almacenan en las preferencias de la aplicación, que no se eliminan instantáneamente cuando desinstala su 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.