Nota: Non è disponibile alcuna documentazione legacy per questo elemento, pertanto viene visualizzata la documentazione corrente.
Ora puoi implementare le notifiche push per la tua applicazione iOS utilizzando il nostro SDK per app iOS. Avrai bisogno dell'aiuto del tuo sviluppatore poiché si tratterebbe di un'integrazione una tantum prima di poter inviare loro notifiche push utilizzando la dashboard di PushEngage.
Prima di iniziare
- Avrai bisogno di Xcode installato sul tuo sistema.
- Un account sviluppatore valido e un ID app sono configurati sul portale sviluppatori Apple.
Seguiremo questi passaggi per abilitare le notifiche push per la tua applicazione iOS.
- Configurazione della tua app
- Integrazione dell'SDK iOS di PushEngage
- Inizializzazione dell'SDK iOS di PushEngage
- Creazione dell'estensione del servizio di notifica
- Inizializzazione dell'SDK di PushEngage per l'estensione del servizio di notifica
- Creazione dell'estensione del contenuto di notifica
- Inizializzazione dell'SDK di PushEngage per l'estensione del contenuto di notifica
- Aggiungi gruppi di app
- Deep Linking
- Gestione delle notifiche in primo piano
- Risoluzione dei problemi
Configurazione della tua app
Abilita notifiche remote
1. Apri il tuo progetto Xcode e seleziona il progetto principale nel Navigatore Progetto. Scegli il tuo target principale dell'app.
2. Vai a Firma e funzionalità. Assicurati che la funzionalità Modalità in background sia aggiunta. In caso contrario, aggiungila facendo clic sul pulsante “+ Funzionalità”.
3. Allo stesso modo, assicurati che la funzionalità Notifiche push sia aggiunta. In caso contrario, aggiungila utilizzando il pulsante “+ Funzionalità”.
Se la funzionalità Notifiche push non è visibile in Xcode. Devi seguire i passaggi seguenti:
1. Vai al tuo account sviluppatore Apple.
2. Naviga a Certificates, Identifiers & Profiles.
3. Seleziona l'identificatore della tua App. Modifica la configurazione del tuo App ID e assicurati che Push Notifications sia abilitato.
4. Torna a Xcode e prova ad aggiungere nuovamente la funzionalità “Push Notifications”.
Abilita modalità in background
1. Nel tuo progetto Xcode, naviga a Signing & Capabilities.
2. All'interno di Background Modes, abilita sia Remote notifications che Background Fetch.
Questo passaggio assicura che la tua app possa gestire in modo efficiente le notifiche remote e i recuperi in background.
Qui è disponibile la guida per la creazione del tuo certificato APNs.
Integrazione dell'SDK iOS di PushEngage
L'SDK iOS di PushEngage è disponibile come pacchetto Swift e come pod CocoaPods. Ti chiediamo di esaminare entrambi i metodi, ma di utilizzarne solo uno durante il completamento della configurazione.
Integrazione dell'SDK iOS di PushEngage con SPM
Per integrare l'SDK iOS di PushEngage utilizzando Swift Package Manager, segui questi passaggi:
- Apri Xcode e naviga al tuo progetto. Seleziona la scheda delle dipendenze del pacchetto. Fai clic sul pulsante +.

- Incolla l'URL
https://github.com/awesomemotive/pushengage-ios-sdknella barra di ricerca. Fai clic su “Add Package”.

- Seleziona il tuo target principale dell'app sotto “Add to Target” e fai clic su “Add Package”.

Integrazione dell'SDK iOS di PushEngage con CocoaPods
Per integrare l'SDK iOS di PushEngage utilizzando CocoaPods, devi seguire questi passaggi:
Se CocoaPods non è installato, chiudi il tuo progetto Xcode corrente ed esegui il seguente comando nella directory principale del tuo progetto
sudo gem install cocoapods
Esegui il seguente comando per inizializzare un Podfile nel tuo progetto
pod init
Apri il Podfile appena creato utilizzando un editor di testo o seguendo il comando nel tuo terminale nella directory principale del progetto.
open Podfile
Aggiungi la dipendenza PushEngage sotto il target del tuo progetto. Assicurati che il tuo Podfile sia simile all'esempio seguente
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'YourProjectName' do
# Add PushEngage SDK dependency
pod 'PushEngage'
end
Salva il Podfile ed esegui i seguenti comandi nel terminale.
pod repo update
pod install
Apri il file <project-name>.xcworkspace appena creato in Xcode.
Inizializzazione dell'SDK iOS di PushEngage
Una volta integrato l'SDK, dovremo inizializzare l'SDK iOS nel tuo AppDelegate.
Usando il linguaggio Swift, ecco come puoi farlo
import PushEngage
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
super.init()
PushEngage.swizzleInjection(isEnabled: true)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Set your PushEngage App ID (replace "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD" with your actual App ID)
PushEngage.setAppId(id: "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD")
// Start PushEngage initial info
PushEngage.setInitialInfo(for: application, with: launchOptions)
// Enable logs for debugging (optional)
PushEngage.enableLogs = true
return true
}
}
Usando il linguaggio Objective-C, ecco come puoi farlo
#import "AppDelegate.h"
@import PushEngage;
@implementation AppDelegate
- (instancetype)init {
self = [super init];
if (self) {
[PushEngage swizzleInjectionWithIsEnabled:YES];
}
return self;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Set your PushEngage App ID (replace "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD" with your actual App ID)
[PushEngage setAppIDWithId:@"APP_ID_FROM_PUSH_ENGAGE_DASHBOARD"];
// Set initial info
[PushEngage setInitialInfoFor:application with:launchOptions];
// Enable logs for debugging (optional)
[PushEngage setEnableLogs:YES];
return YES;
}
@end
A volte, quando si utilizza SwiftUI, l'AppDelegate potrebbe non essere disponibile per impostazione predefinita. In questi casi, puoi inizializzare l'SDK PushEngage nel tuo file App principale. Ecco un esempio in SwiftUI
import SwiftUI
import PushEngage
@main
struct PEDemoApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate {
override init() {
super.init()
PushEngage.swizzleInjection(isEnabled: true)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
PushEngage.setAppID(id: "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD")
PushEngage.setIntialInfo(for: application,
with: launchOptions)
PushEngage.enableLogs = true
return true
}
}
Nota: Durante lo sviluppo della tua applicazione, potresti trovare utile abilitare i log dall'SDK PushEngage per scopi di debug. Tuttavia, è essenziale disabilitare i log nella build di produzione per evitare di esporre informazioni sensibili.
Creazione dell'estensione del servizio di notifica
La Notification Service Extension migliora la capacità della tua app iOS di ricevere notifiche. Viene utilizzata per modificare il contenuto della notifica o per recuperare/elaborare dati alla ricezione della notifica. Puoi seguire i passaggi seguenti per creare una Notification Service Extension:
1. Apri Xcode e naviga al tuo progetto. Scegli File » New » Target dal menu.
2. Nella finestra di selezione del template, scegli Notification Service Extension e fai clic su Next.
3. Fornisci un nome per la tua estensione, ad esempio, PushEngageNotificationServiceExtension, e fai clic su Fine.
4. Al termine della creazione della Notificaton Service Extension, potrebbe esserti richiesto di attivarla. Non attivarla immediatamente.
L'attivazione dell'estensione sposterebbe il focus del debug di Xcode dalla tua app all'estensione. Se la attivi per errore, non preoccuparti; puoi tornare al debug della tua app all'interno di Xcode.
Inizializzazione dell'SDK di PushEngage per l'estensione del servizio di notifica
Per garantire il corretto funzionamento del SDK PushEngage nella tua Notificaton Service Extension iOS, devi seguire questi passaggi:
1. Apri il Podfile associato al tuo progetto.
2. Quindi devi aggiungere la Dipendenza. Inserisci il seguente snippet di codice nel tuo Podfile:
target 'Your_Main_Application_Target' do
use_frameworks!
pod 'PushEngage'
end
target 'Your_Notification_Service_Extension_Target' do
use_frameworks!
pod 'PushEngageExtension'
end
3. Esegui i seguenti comandi nel tuo terminale all'interno della directory principale del tuo progetto:
pod repo update
pod install
4. Nella tua target di Notificaton Service Extension, importa il framework PushEngage e aggiungi il codice di inizializzazione necessario. Ecco come puoi farlo.
Utilizzo di Swift
import UserNotifications
import PushEngageExtension
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
var request: UNNotificationRequest?
override func didReceive(_ request: UNNotificationRequest,
withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.request = request
self.contentHandler = contentHandler
self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestContent = bestAttemptContent {
PushEngageExtension.didReceiveNotificationExtensionRequest(request, bestContentHandler: bestContent)
contentHandler(bestContent)
}
}
override func serviceExtensionTimeWillExpire() {
// Called just before the extension will be terminated by the system.
// Use this as an opportunity to deliver your "best attempt" at modified
// content, otherwise the original push payload will be used.
if let contentHandler = contentHandler, let request = request, let bestAttemptContent = bestAttemptContent {
guard let content = PushEngageExtension.serviceExtensionTimeWillExpire(request, content: bestAttemptContent) else {
contentHandler(bestAttemptContent)
return
}
contentHandler(content)
}
}
}
Utilizzo di Objective-C
#import "NotificationService.h"
@import PushEngageExtension;
@interface NotificationService ()
@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;
@property (nonatomic, strong) UNNotificationRequest *request;
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request
withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
self.request = request;
self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];
if (self.bestAttemptContent) {
[PushEngageExtension didReceiveNotificationExtensionRequest:request
bestContentHandler:self.bestAttemptContent];
contentHandler(self.bestAttemptContent);
}
}
- (void)serviceExtensionTimeWillExpire {
if (self.contentHandler && self.request && self.bestAttemptContent) {
UNNotificationContent *content = [PushEngageExtension serviceExtensionTimeWillExpire:self.request
content:self.bestAttemptContent];
if (content) {
self.contentHandler(content);
return;
}
}
self.contentHandler(self.bestAttemptContent);
}
@end
Creazione dell'estensione del contenuto di notifica
Per migliorare il modo in cui aggiungere un'interfaccia utente personalizzata, dovrai creare una Notificaton Content Extension. Segui i passaggi seguenti per configurare l'estensione:
1. In Xcode, vai su File » Nuovo » Target.
2. Seleziona Notificaton Content Extension e fai clic su Avanti.
3. Non selezionare “Attiva” nella finestra di dialogo che appare dopo aver fatto clic su Fine. Annullando, Xcode continuerà a eseguire il debug della tua app invece dell'estensione. Se la attivi accidentalmente, torna al debug della tua app all'interno di Xcode (accanto al pulsante di esecuzione).
4. Nel navigatore di progetto, seleziona la directory principale del progetto e seleziona il target NotificatonContentExtension nel progetto dall'elenco dei target creato al passaggio n. 2.
5. Imposta il Deployment Target su iOS 10 o versioni successive, che è la versione di iOS in cui Apple ha rilasciato il supporto per questa estensione.
Inizializzazione dell'SDK di PushEngage per l'estensione del contenuto di notifica
Per garantire il corretto funzionamento del SDK PushEngage nella tua Notificaton Content Extension iOS, devi seguire questi passaggi:
1. Apri il Podfile associato al tuo progetto.
2. Aggiungi Dipendenza, inserisci il seguente snippet di codice nel tuo Podfile:
target 'Your_Main_Application_Target' do
pod 'PushEngage'
target 'Your_Notification_Content_Extension' do
pod 'PushEngageExtension'
end
end
3. Esegui i seguenti comandi nel tuo terminale all'interno della directory principale del tuo progetto:
pod repo update
pod install
4. Nella tua target di Notificaton Content Extension, importa il framework PushEngage e aggiungi il codice di inizializzazione necessario. Ecco come puoi farlo con alcuni esempi di elementi UI:
Utilizzo di Swift
import UIKit
import UserNotifications
import UserNotificationsUI
import SwiftUI
import PushEngageExtension
@available(iOSApplicationExtension 13.0, *)
class NotificationViewController: UIViewController, UNNotificationContentExtension {
fileprivate var hostingView: UIHostingController<ContentView>?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
}
func didReceive(_ notification: UNNotification) {
if notification.request.content.categoryIdentifier == "your_identifier" {
let payLoad = PushEngageExtension.getCustomUIPayLoad(for: notification.request)
// Pass the payload to your custom SwiftUI view
let view = ContentView(payLoadInfo: payLoad)
hostingView = UIHostingController(rootView: view)
if let hostingView = hostingView {
addChild(hostingView)
hostingView.view.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(hostingView.view)
NSLayoutConstraint.activate([
hostingView.view.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
hostingView.view.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
hostingView.view.topAnchor.constraint(equalTo: self.view.topAnchor),
hostingView.view.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
])
}
}
}
}
Objective-C:
#import "NotificationViewController.h"
#import <UserNotifications/UserNotifications.h>
#import <UserNotificationsUI/UserNotificationsUI.h>
@import PushEngageExtension;
@import UIKit;
@interface NotificationViewController () <UNNotificationContentExtension>
@property IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIButton *firstButton;
@property (weak, nonatomic) IBOutlet UIButton *secondButton;
@end
@implementation NotificationViewController
- (IBAction)firstbuttonAction:(id)sender {
// do what action you want to perform.
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any required interface initialization here.
}
- (void)didReceiveNotification:(UNNotification *)notification {
NotificationViewController * __block blockSelf = self;
CustomUIModel *object = [PushEngageExtension getCustomUIPayLoadFor:notification.request];
dispatch_async(dispatch_get_main_queue(), ^{
blockSelf.label.text = object.title;
blockSelf.imageView.image = object.image;
[blockSelf.firstButton setTitle:object.buttons.firstObject.text forState:UIControlStateNormal];
[blockSelf.secondButton setTitle:object.buttons.lastObject.text forState:UIControlStateNormal];
blockSelf = NULL;
});
}
@end
Aggiungi gruppi di app
I gruppi di app sono essenziali per la comunicazione tra l'app principale, l'estensione di notifica e l'estensione di contenuto. Puoi seguire questi passaggi per aggiungere gruppi di app al tuo progetto iOS:
Se hai un gruppo di app esistente e vuoi usarne solo uno, salta al passaggio n. 5.
1. Nel tuo progetto Xcode, nel navigatore di progetto, seleziona la directory principale del progetto e seleziona il target principale dell'app.
2. Naviga alla scheda Firma e funzionalità.
3. Fai clic sul pulsante “+ Funzionalità” e seleziona Gruppi di app dall'elenco.
4. Fai clic sul pulsante + per aggiungere un Gruppo di app. Aggiungi un nome univoco al tuo Gruppo di app e fai clic su OK.
5. Nell'area dell'editor principale, seleziona il target principale della tua app e crea un gruppo di app. Fornisci il nome del gruppo nella tua Info.plist dell'applicazione con la chiave PushEngage_App_Group_Key.
6. Aggiungere la stessa chiave e lo stesso valore nel file Info.plist della Notification Service Extension.
7. Selezionare lo stesso gruppo di app nel Target dell'Applicazione Principale e nella YourNotificationServiceExtension.
Assicurati di scegliere la tua estensione del servizio di notifica nel passaggio precedente.
Deep Linking
Il deep linking consente ai tuoi abbonati di navigare direttamente a una schermata specifica all'interno dell'applicazione o a una pagina web designata quando interagiscono con le notifiche push. Per impostazione predefinita, se fornisci un URL valido, l'abbonato verrà reindirizzato a quella pagina web.
Gestione degli URL Web:
- Fornire
PushEngageInAppEnabledsu YES in Info.plist, quindi l'URL verrà caricato all'interno dell'applicazione utilizzando WKWebview. - Fornire
PushEngageInAppEnabledsu NO in Info.plist, se si desidera che il proprio abbonato venga reindirizzato a Safari per caricare l'URL. - Fornire
PushEngageAutoHandleDeeplinkURLsu YES in Info.plist, quindi l'SDK gestirà il deep link in base alla configurazione diPushEngageInAppEnabled. - Fornire
PushEngageAutoHandleDeeplinkURLsu NO in Info.plist, quindi il controllo della gestione del deep link verrà dato all'app client dall'SDK. - Se il deep link non è un URL valido, è necessario configurare la navigazione utilizzando
setNotificationOpenHandlerinAppDelegateall'interno del metododidFinishLaunchingWithOptions. Ciò consente di navigare a una schermata specifica in base alla stringa fornita, come mostrato di seguito. Se non configurato, l'SDK aprirà semplicemente l'applicazione.

Utilizzo di Swift:
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
super.init()
// method Swizzling enabled for the application.
PushEngage.swizzleInjection(isEnabled: true)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
PushEngage.setAppID(id: "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD")
PushEngage.setInitialInfo(for: application,with: launchOptions)
// Notification open handler.
// deep linking screen
// here ShoesScreen and pepay are example deep link texts
PushEngage.setNotificationOpenHandler { (result) in
//replace this block with your own handling
let additionData = result.notification.additionalData
if result.notificationAction.actionID == "ShoesScreen" {
print(additionData ?? [])
let storyBoard = UIStoryboard(name: "Main", bundle: .main)
let viewController = storyBoard.instantiateViewController(withIdentifier: "SportViewController")
let navcontroller = application.windows.first?.rootViewController as? UINavigationController
navcontroller?.popToRootViewController(animated: true)
navcontroller?.pushViewController(viewController, animated: true)
} else if result.notificationAction.actionID == "SalesScreen" {
let storyBoard = UIStoryboard(name: "Main", bundle: .main)
let viewController = storyBoard.instantiateViewController(withIdentifier: "NotificationApiTestViewconttoller")
let navcontroller = application.windows.first?.rootViewController as? UINavigationController
navcontroller?.popToRootViewController(animated: true)
navcontroller?.pushViewController(viewController, animated: true)
} else if result.notificationAction.actionID == "pepay" {
let storyBoard = UIStoryboard(name: "Main", bundle: .main)
let viewController = storyBoard.instantiateViewController(withIdentifier: "PEPay")
let navcontroller = application.windows.first?.rootViewController as? UINavigationController
navcontroller?.popToRootViewController(animated: true)
navcontroller?.pushViewController(viewController, animated: true)
}
}
PushEngage.enableLogs = true
return true
}
}
Utilizzo di Objective-C:
@implementation AppDelegate
- (instancetype)init
{
self = [super init];
if (self) {
[PushEngage swizzleInjectionWithIsEnabled: YES];
}
return self;
}
typedef void (^PEnotificationOpenHandler)(PENotificationOpenResult * nonnull);
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UNUserNotificationCenter.currentNotificationCenter.delegate = self;
PEnotificationOpenHandler actionHandler = ^void(PENotificationOpenResult *result) {
//replace this block with your own handling
if ([result.notificationAction.actionID isEqualToString: @"ShoesScreen"]) {
AddToCart *controller = [AddToCart new];
UINavigationController *navigationController = (UINavigationController *) application.windows.firstObject.rootViewController;
[navigationController popToRootViewControllerAnimated:YES];
[navigationController pushViewController:controller animated:YES];
} else if ([result.notificationAction.actionID isEqualToString: @"SalesScreen"]) {
SportsViewcontroller *controller = [SportsViewcontroller new];
UINavigationController *navigationController = (UINavigationController *) application.windows.firstObject.rootViewController;
[navigationController popToRootViewControllerAnimated:YES];
[navigationController pushViewController:controller animated:YES];
}
};
application.applicationIconBadgeNumber = 0;
[PushEngage setAppIDWithId:@"APP_ID_FROM_PUSH_ENGAGE_DASHBOARD"];
[PushEngage setInitialInfoFor:application with:launchOptions];
[PushEngage setNotificationOpenHandlerWithBlock:actionHandler];
[PushEngage setEnableLogs:true];
return YES;
}
@end
Gestione delle notifiche in primo piano
Quando le notifiche arrivano in primo piano, devi decidere se mostrare o meno l'avviso di notifica al dispositivo. Per gestire le notifiche in primo piano, usa setNotificationWillShowInForgroundHandler
Se il blocco di completamento non viene chiamato da te, l'SDK chiamerà il blocco di completamento dopo 29 secondi. In ogni caso, notifica silenziosa o di avviso quando l'applicazione è in modalità primo piano.
Utilizzo di Swift
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
super.init()
// method Swizzling enabled for the application.
PushEngage.swizzleInjection(isEnabled: true)
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
PushEngage.setAppID(id: "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD")
PushEngage.setInitialInfo(for: application, with: launchOptions)
// Notification handler when notification deliver's and app is in foreground.
PushEngage.setNotificationWillShowInForgroundHandler { notification, completion in
if notification.contentAvailable == 1 {
// in case the developer failed to set the completion handler. After 29 sec the handler will call from the SDK after 29 sec.
completion(nil)
} else {
completion(notification)
}
}
PushEngage.enableLogs = true
return true
}
}
Utilizzo di Objective-C
@implementation AppDelegate
- (instancetype)init
{
self = [super init];
if (self) {
[PushEngage swizzleInjectionWithIsEnabled: YES];
}
return self;
}
// please create this handlers
typedef void (^ _Nonnull PENotificationDisplayHandler)(PENotification * _Nullable);
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UNUserNotificationCenter.currentNotificationCenter.delegate = self;
[PushEngage setNotificationWillShowInForgroundHandlerWithBlock:^(PENotification * _Nonnull notification, PENotificationDisplayHandler completion) {
if (notification.contentAvailable == 1) {
completion(nil);
} else {
completion(notification);
}
}];
[PushEngage setAppIDWithId:@"APP_ID_FROM_PUSH_ENGAGE_DASHBOARD"];
[PushEngage setInitialInfoFor:application with:launchOptions];
[PushEngage setEnableLogs:true];
return YES;
}
@end
Risoluzione dei problemi
Problema:
Stai riscontrando problemi di compilazione relativi al sandboxing.
Soluzione:
- Apri il tuo progetto in Xcode.
- Naviga in Build Settings.
- Individua l'opzione User Script Sandboxing.
- Impostala su No.
Problema:
Stai utilizzando sia l'SDK Firebase che l'SDK PushEngage con il method swizzling abilitato per entrambi, e ciò sta causando problemi.
Soluzione:
Disabilita il method swizzling per l'SDK PushEngage e segui i passaggi manuali per la gestione dei metodi PushEngage. Puoi trovare istruzioni dettagliate su:
Documentazione SDK iOS PushEngage
Se desideri esplorare ulteriormente le capacità dell'SDK iOS, puoi consultare la nostra documentazione API dettagliata.
Se riscontri problemi, ti preghiamo di contattarci cliccando qui. Il nostro team di supporto sarà in grado di aiutarti.