Hoe u iOS App Pushmeldingen instelt met PushEngage

U kunt nu pushmeldingen implementeren voor uw iOS-applicatie met behulp van onze iOS App SDK. U heeft de hulp van uw ontwikkelaar nodig, aangezien dit een eenmalige integratie zou zijn voordat u ze pushmeldingen kunt sturen via het PushEngage-dashboard.

Voordat u begint

  • U heeft Xcode op uw systeem geïnstalleerd nodig.
  • Een geldig ontwikkelaarsaccount en App ID zijn geconfigureerd op het Apple Developer Portal.

We volgen deze stappen om pushmeldingen voor uw iOS-applicatie in te schakelen.

Uw app configureren

Externe meldingen inschakelen

1. Open uw Xcode-project en selecteer het hoofdproject in de Projectnavigator. Kies uw hoofdapp-doel.

2. Ga naar Signing & Capabilities. Zorg ervoor dat de Background Modes-mogelijkheid is toegevoegd. Zo niet, voeg deze dan toe door op de knop "+ Capability" te klikken.

3. Zorg er op dezelfde manier voor dat de Push Notifications-mogelijkheid is toegevoegd. Zo niet, voeg deze dan toe met de knop "+ Capability".

Als de mogelijkheid Push Notifications niet zichtbaar is in Xcode. U moet de onderstaande stappen volgen:

1. Ga naar uw Apple Developer-account.

2. Ga naar Certificates, Identifiers & Profiles.

3. Selecteer uw App-identifier. Bewerk de configuratie van uw App ID en zorg ervoor dat Push Notifications is ingeschakeld.

4. Keer terug naar Xcode en probeer de "Push Notifications"-mogelijkheid opnieuw toe te voegen.

Achtergrondmodi inschakelen

1. Ga in uw Xcode-project naar Signing & Capabilities.

2. Schakel binnen Background Modes zowel Remote notifications als Background Fetch in.

Deze stap zorgt ervoor dat je app efficiënt om kan gaan met externe meldingen en achtergrond-fetches.

Hier vind je de handleiding voor het aanmaken van je APNs-certificaat.

PushEngage iOS SDK integreren

De PushEngage iOS SDK is beschikbaar als een Swift-pakket en een CocoaPods-pod. We vragen je om beide methoden te bekijken, maar slechts één ervan te gebruiken bij het voltooien van je installatie.

PushEngage iOS SDK integreren met SPM

Volg deze stappen om de PushEngage iOS SDK te integreren met behulp van Swift Package Manager:

  1. Open XCode en navigeer naar je project. Selecteer het tabblad 'Package dependencies'. Klik op de '+' knop.
  1. Plak de URL https://github.com/awesomemotive/pushengage-ios-sdk in de zoekbalk. Klik op "Add Package".
  1. Selecteer je hoofd-app-target onder "Add to Target" en klik op "Add Package".

PushEngage iOS SDK integreren met CocoaPods

Om de PushEngage iOS SDK te integreren met behulp van CocoaPods, moet je de volgende stappen volgen:

Als CocoaPods niet is geïnstalleerd, sluit dan je huidige Xcode-project af en voer het volgende commando uit in de hoofdmap van je project

sudo gem install cocoapods

Voer het volgende commando uit om een Podfile in je project te initialiseren

pod init

Open de nieuw aangemaakte Podfile met een teksteditor of door het commando in je terminal in de hoofdmap van het project te volgen.

open Podfile

Voeg de PushEngage-afhankelijkheid toe onder de target van je project. Zorg ervoor dat je Podfile er vergelijkbaar uitziet als het onderstaande voorbeeld

# 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'
  post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
      end
    end
  end
end

Sla de Podfile op en voer de volgende commando's uit in de terminal.

pod repo update
pod install

Open het nieuw aangemaakte <project-name>.xcworkspace-bestand in Xcode.

PushEngage iOS SDK initialiseren

Zodra je de SDK hebt geïntegreerd, moeten we de iOS SDK initialiseren in je AppDelegate.

In Swift-taal, hier is hoe je dat kunt doen

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(key: "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
    }
}

In Objective-C-taal, hier is hoe je dat kunt doen

#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 setAppIdWithKey:@"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

Soms, bij het gebruik van SwiftUI, is de AppDelegate mogelijk niet standaard beschikbaar. In dergelijke gevallen kun je de PushEngage SDK initialiseren in je hoofd-app-bestand. Hier is een voorbeeld 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(key: "APP_ID_FROM_PUSH_ENGAGE_DASHBOARD")
        PushEngage.setIntialInfo(for: application,
                                             with: launchOptions)
        
        PushEngage.enableLogs = true
        return true
    }
}

Opmerking: Tijdens het ontwikkelen van je applicatie kan het nuttig zijn om logs van de PushEngage SDK in te schakelen voor debugdoeleinden. Het is echter essentieel om logs uit te schakelen in de productie-build om te voorkomen dat gevoelige informatie wordt blootgesteld.

Meldingenservice-extensie maken

De Notification Service Extension verbetert de mogelijkheid van je iOS-app om meldingen te ontvangen. Dit wordt gebruikt om de inhoud van de melding te wijzigen of om gegevens op te halen/verwerken bij het ontvangen van de melding. Je kunt de onderstaande stappen volgen om een Notification Service Extension te maken:

1. Open Xcode en navigeer naar je project. Kies File » New » Target in het menu.

2. Kies in het venster voor het selecteren van templates Notification Service Extension en klik op Next.

3. Geef een naam op voor je extensie, bijvoorbeeld PushEngageNotificationServiceExtension, en klik op Finish.

4. Wanneer je klaar bent met het maken van de Notification Service Extension, kan je gevraagd worden om deze te activeren. Activeer deze niet onmiddellijk.

Het activeren van de extensie zou de debugfocus van Xcode verschuiven van je app naar de extensie. Als je dit per ongeluk activeert, maak je geen zorgen; je kunt de focus terugschakelen naar het debuggen van je app binnen Xcode.

PushEngage SDK initialiseren voor Meldingenservice-extensie

Om de juiste werking van de PushEngage SDK in je iOS Notification Service Extension te garanderen, moet je de volgende stappen volgen:

1. Open het Podfile dat bij uw project hoort.

2. Voeg vervolgens de afhankelijkheid toe. Voeg het volgende codefragment toe aan uw Podfile:

target 'Your_Main_Application_Target' do
      pod 'PushEngage'
      post_install do |installer|
          installer.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
              config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
          end
        end
      end
     
      target 'Your_Notification_Service_Extension_Target' do
              pod 'PushEngage'
      end
end

3. Voer de volgende commando's uit in uw terminal binnen de hoofdmap van uw project:

pod repo update
pod install

4. Importeer in uw Notification Service Extension-doel het PushEngage-framework en voeg de benodigde initialisatiecode toe. Hier leest u hoe u dat kunt doen.

Gebruik van Swift

import UserNotifications
import PushEngage

@available(iOSApplicationExtension 10.0, *)
class PushEngageNotificationServiceExtension: 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 {
            PushEngage.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 = PushEngage.serviceExtensionTimeWillExpire(request, content: bestAttemptContent) else {
                contentHandler(bestAttemptContent)
                return
            }
            contentHandler(content)
        }
    }

}

Gebruik van Objective-C

#import "NotificationService.h"
@import PushEngage;

@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) {
        [PushEngage didReceiveNotificationExtensionRequest:request bestContentHandler:self.bestAttemptContent];
        contentHandler(self.bestAttemptContent);
    }
}

- (void)serviceExtensionTimeWillExpire {

    if (self.contentHandler && self.request && self.bestAttemptContent) {
        UNNotificationContent *content = [PushEngage serviceExtensionTimeWillExpire:self.request content:self.bestAttemptContent];
        if (content) {
            self.contentHandler(self.bestAttemptContent);
            return;
        }
    }
    self.contentHandler(self.bestAttemptContent);
}

@end

Meldinginhoud-extensie maken

Om de manier te verbeteren door een aangepaste UI toe te voegen, moet u een Notification Content Extension maken. Volg de onderstaande stappen om de extensie in te stellen:

1. Ga in Xcode naar File » New » Target.

2. Selecteer Notification Content Extension en klik op Next.

3. Selecteer "Activate" niet in het dialoogvenster dat verschijnt na het klikken op Finish. Annuleren zorgt ervoor dat Xcode uw app debugt in plaats van de extensie. Als u het per ongeluk activeert, schakelt u terug naar het debuggen van uw app binnen Xcode (naast de uitvoeren-knop).

4. Selecteer in de projectnavigator de hoofdmap van het project en selecteer het NotificationContentExtension-doel in het project uit de lijst met doelen die in stap 2 zijn gemaakt.

5. Stel de Deployment Target in op iOS 10 of hoger, wat de versie van iOS is waarop Apple de ondersteuning voor deze extensie heeft uitgebracht. 

PushEngage SDK initialiseren voor Meldinginhoud-extensie

Om de juiste werking van de PushEngage SDK in uw iOS Notification Content Extension te garanderen, moet u de volgende stappen volgen:

1. Open het Podfile dat bij uw project hoort.

2. Voeg afhankelijkheid toe, voeg het volgende codefragment toe aan uw Podfile:

target 'Your_Main_Application_Target' do
  pod 'PushEngage'
  target 'Your_Notification_Content_Extension' do
    pod 'PushEngage'
  end
end

3. Voer de volgende commando's uit in uw terminal binnen de hoofdmap van uw project:

pod repo update

pod install

4. Importeer in uw Notification Content Extension-doel het PushEngage-framework en voeg de benodigde initialisatiecode toe. Hier leest u hoe u dat kunt doen met enkele voorbeelden van UI-elementen:

Gebruik van Swift

import UIKit
import UserNotifications
import UserNotificationsUI
import PushEngage

@available(iOSApplicationExtension 10.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 = PushEngage.getCustomUIPayLoad(for: notification.request)
  //pass the payload to your custom View
            let view = CustomView(payLoadInfo: payLoad)
            hostingView = UIHostingController(rootView: view)
If let customView = self.hostingView {
            addChild(hostingView!)
}
        }
    }
    
}


Objective-C:

#import "NotificationViewController.h"
#import <UserNotifications/UserNotifications.h>
#import <UserNotificationsUI/UserNotificationsUI.h>

@import PushEngage;
@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 = [PushEngage 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

App-groepen toevoegen

App Groups zijn essentieel voor communicatie tussen de hoofdapp, de notification service extension en de content extension. U kunt de volgende stappen volgen om App Groups toe te voegen aan uw iOS-project:

Als u al een appgroep hebt en die alleen wilt gebruiken, ga dan naar stap 5.

1. Selecteer in uw Xcode-project, in de projectnavigator, de hoofdmap van het project en selecteer het hoofd-doel van de app.

2. Navigeer naar het tabblad Signing & Capabilities.

3. Klik op de knop "+ Capability" en selecteer App Groups uit de lijst.

4. Klik op de knop + om een App Group toe te voegen. Voeg een unieke naam toe aan uw App Group en klik op OK.

5. Selecteer in het hoofd-editorgebied het hoofd-doel van uw app en maak een appgroep. Geef de naam van de groep op in de Info.plist van uw applicatie met de sleutel PushEngage_App_Group_Key.

6. Voeg dezelfde sleutel en waarde toe in het Info.plist-bestand van de Notification Service Extension.

7. Selecteer dezelfde appgroep in het Main Application Target en de YourNotificationServiceExtension.

Zorg ervoor dat u uw notification service extension selecteert in de bovenstaande stap.

Deep Linking

Deep linking stelt uw abonnees in staat om rechtstreeks naar een specifiek scherm binnen de applicatie of een aangewezen webpagina te navigeren wanneer ze interageren met pushmeldingen. Standaard, als u een geldige URL opgeeft, wordt de abonnee naar die webpagina omgeleid.

Web URL's verwerken:

  • Stel PushEngageInAppEnabled in op YES in Info.plist, dan wordt de URL binnen de applicatie geladen met WKWebview.
  • Stel PushEngageInAppEnabled in op NO in Info.plist, als u wilt dat uw abonnee wordt omgeleid naar Safari om de URL te laden. 
  • Stel PushEngageAutoHandleDeeplinkURL in op YES in Info.plist, dan zal de SDK de deeplink afhandelen volgens de PushEngageInAppEnabled configuratie.
  • Stel PushEngageAutoHandleDeeplinkURL in op NO in Info.plist, dan wordt de controle over het afhandelen van de deeplink van de SDK aan de client-app gegeven.
  • Als de deeplink geen geldige URL is, moet u de navigatie configureren met behulp van setNotificationOpenHandler in de AppDelegate binnen de didFinishLaunchingWithOptions methode. Hiermee kunt u navigeren naar een specifiek scherm op basis van de opgegeven string, zoals hieronder weergegeven. Indien niet geconfigureerd, opent de SDK simpelweg de applicatie.
ios-deeplink

Gebruikmakend van 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(key: "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
    }
}

Gebruikmakend van 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 setAppIdWithKey:@"APP_ID_FROM_PUSH_ENGAGE_DASHBOARD"];
    [PushEngage setInitialInfoFor:application with:launchOptions];
    [PushEngage setNotificationOpenHandlerWithBlock:actionHandler];
    [PushEngage setEnableLogs:true];
    return YES;
}
@end

Meldingen afhandelen op de voorgrond

Wanneer meldingen binnenkomen op de voorgrond, moet u beslissen of u de meldingswaarschuwing aan het apparaat wilt tonen of niet. Om meldingen op de voorgrond af te handelen, gebruikt u de setNotificationWillShowInForgroundHandler.

Als het voltooiingsblok helemaal niet door u wordt aangeroepen, roept de SDK het voltooiingsblok na 29 seconden aan. In elk geval, stille of waarschuwingsmelding wanneer de applicatie op de voorgrond actief is.

Gebruik van 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(key: "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
    }
}


Gebruik van 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 setAppIdWithKey:@"APP_ID_FROM_PUSH_ENGAGE_DASHBOARD"];
    [PushEngage setInitialInfoFor:application with:launchOptions];
    [PushEngage setEnableLogs:true];
    return YES;
}
@end

Probleemoplossing

Oplossen van Build-problemen met betrekking tot Sandboxing

Probleem:

U ondervindt build-problemen met betrekking tot sandboxing.

Oplossing:

  • Open uw project in Xcode.
  • Navigeer naar Build Settings.
  • Zoek de optie User Script Sandboxing.
  • Stel deze in op No.
Problemen met Method Swizzling in Firebase en PushEngage SDK's

Probleem:

U gebruikt zowel de Firebase SDK als de PushEngage SDK met method swizzling ingeschakeld voor beide, en dit veroorzaakt problemen.

Oplossing:

Schakel method swizzling uit voor de PushEngage SDK en volg de handmatige stappen voor het afhandelen van PushEngage-methoden. U kunt gedetailleerde instructies vinden op:
PushEngage iOS SDK Documentatie

Als u meer van de mogelijkheden van de iOS SDK wilt ontdekken, kunt u onze gedetailleerde API-documentatie doornemen.

Als u problemen ondervindt, kunt u contact met ons opnemen door hier te klikken. Ons ondersteuningsteam zal u kunnen helpen.

Nog steeds vast? Hoe kunnen we helpen?
Laatst bijgewerkt op 9 maart 2026

Bezoekers betrekken en behouden nadat ze uw website hebben verlaten

Verhoog de waarde van elk websitebezoek met pushmeldingen die moeilijk te missen zijn.

  • Voor Altijd Gratis Plan
  • Eenvoudige Installatie
  • 5 Sterren Support