MoEngage Docs

Troubleshooting And FAQs

Enable SDK logs

By default we have disabled logs from the SDK. For debugging if you want to see the SDK logs in your console, use debug method as shown below :

[MoEngage debug:LOG_ALL];
MoEngage.debug(LOG_ALL)

Setting debug level to LOG_ALL will show all the logs from the SDK. If you want to see only the exceptions, you can set log level to LOG_EXCEPTIONS.

All MoEngage logs are prefixed by the keyword "MoEngage".

Sample Project

Refer to this Sample Project if you have any queries regarding implementation of any features of MoEngage iOS SDK.

FAQs

Don't see events in dashboard?

  • Make sure that the SDK initialization is done properly. Check if the App ID provided in the intialization method is correct.
  • Once the App ID is checked, make sure you are checking in the right Moengage environment. While initialization of the SDK, you must make use of the DEBUG macro in your project. By default behaviour, if the build configuration is set to Debug then events will show up in Test Environment or else if build configuration is set to Release then events will be tracked in Live Environment.
  • In the SDK we reject events with invalid event-attributes. Event attribute values can only have Strings, Numbers and dictionaries or else events might get rejected. For confirming enable the SDK logs and check if the events list sent while app goes to background has the event you are tracking, if not then events are getting rejected by the SDK.
  • If neither of the above then sometimes it takes a little time to show up in the dashboard, so wait for about 10-15 mins for the events to show up. :)

Seeing events of one user in another user's profile?

  • Make sure you have implemented user unique ID tracking properly. Please set User Attribute Unique ID unique to your logged in users, don't hardcode this value.
  • Make sure resetUser method is called on logout feature of the App, so that SDK can differentiate between the users.

Not getting push notifications in your devices?

  • First, check if the implementation is done correctly. Ensure you registered your app for push notifications correctly, check if you are getting the device token while trying to register for Remote Notification, and the same is sent to the SDK correctly.
  • Refer this link and verify uploaded APNS pem file is valid.
  • The dashboard says notification sent, but the device didn’t receive it - Check if notification settings for the app were disabled.

Getting BadDeviceToken Error while sending the push notifications?

  • This error comes whenever you try to send push notification from TEST environment to AppStore/AdHoc Build OR from LIVE environment to development build.
  • Set Build Configuration correctly and test in correct environment. Refer link for more info.

Getting DeviceTokenNotForTopic Error while sending the push notifications?

  • You will get this error when Bundle-ID of the build in which you are expecting the push notifications and that of APNS certificate uploaded in the dashboard(pem file) are different.

Push notification clicks not getting updated?

  • Ensure that you are calling MoEngage SDK methods in callback methods which are called on receiving remote notifications. Refer link to know more.

Rich landing not working for push notifications?

  • If Http link : Http URL's aren't supported in iOS9 and above unless explicitly specified in the plist. You will have include App Transport Security Settings Dictionary in your Info.plist and inside this set Allow Arbitrary Loads to YES.
  • Check if the Rich Landing URL is valid.

Images/Video/Audio in Rich Notifcations(iOS10 and above) not showing in push notifications?

  • Make sure you have implemented the Rich Notification feature correctly.
  • If Http link : Http URL's aren't supported in iOS9 and above unless explicitly specified in the plist. You will have include App Transport Security Settings Dictionary in your Notification Service Extensions Info.plist and inside this set Allow Arbitrary Loads to YES.
  • Check if the Image/Audio/Video URL is valid.

Not Getting notifications which are not clicked by user in the Notification Center(Inbox)?

  • Make sure that the SDK Version is above 4.4.0, and confirm if you have implemented Notification Service Extension as mentioned here.
  • Along with it make sure that the App Group IDs are set correctly for both the App Target and the Service Extension target.

Not getting Screen Names drop-down in the Navigation Action while creating the campaign?

  • MoEngage iOS SDK doesn't track screen Names in your app. The possible values for screenName parameter is something which has to be defined by developers in project. Therefore, there will be no dropdown incase of iOS and the Screen name value has to be entered by the marketer in the text-field while creating the campaign. MoEngage will provide the entered value in the notification payload. Developer will have to implement the part to parse and get screenName parameter's value and to navigate to the mentioned screen. Refer link to get the notification payload structure.

InApp campaigns doesn't show in the app?

  • Make sure handleInAppMessage method is called wherever, inApp has to be shown - link
  • In-App only came once and can’t see/test it again. Then it might be a case where inApp to be shown may not pass set of rules which we have kept in SDK to make sure user's experience isn't hindered. Refer link to know about these rules.
  • Enable SDK logs to get more details on why inApp didn't show up and share it with MoEngage Team.

Why are you getting Missing Purpose String in Info.plist File warning from App Store?

Very recently you would have started getting this warning mail from Apple on uploading the build to AppStore. This mail informs about a restriction which will be applied by Apple starting from Spring 2019, this mail is a way for Apple to inform developers about this restriction which will be applied on the Apps in future. Please note that this in no way will affect the Apps Review process, you will still be able to release the App.

As a fix for this issue we have separated SDK's Geofence module to MOGeofence from MoEngage-iOS-SDK version 4.3.0 and going forward has to be integrated separately to a project. Also because of this, there are few changes in the implementation of geofence campaigns. Please follow the docs here to know more.