In this page you'll learn what are the most common mistakes when implementing the Notificare library for iOS.
If you have installed successfully the NPM package but still face problems when implementing the native code, namely if by any chance you cannot access Notificare's React Native module from the AppDelegate.m, you might want to double check the Header Search Path in your project's Build Settings. It should have an entry pointing to the $(SRCROOT)/../node_modules/notificare-push-lib-react-native/ios/NotificarePushLibReactNative or it will be impossible for your project to access Notificare's ReactNative module methods. Also make sure when you do these changes you terminate the Metro Bundler process running in your terminal before attempting to build the project again. Performed the same check for any target you might have (e.g. Notification Service Extension).
Misplaced App Keys
Most common error when implementing Notificare is, by far, misplaced configuration keys. When implementing Notificare, the library configuration file, Notificare.plist must contain the Application Key and Application Secret. Because APNS will use the sandbox servers when building directly from Xcode in the device and production servers when you distribute over-the-air, we strongly recommend you to create two apps in Notificare, one for development and another for production. This will make it easier to switch between environments.
Switching to Production
Always check if the property DEVELOPMENT in the Notificare.plist is set correctly. Whenever you build your app directly from Xcode in a device you will be using APNS sandbox servers so the DEVELOPMENT property must be set to YES. If you archive your application for Adhoc, App Store or Enterprise distribution you should make sure the DEVELOPMENT property is set to NO. Failing to set this correctly will prevent Notificare from sending notifications to the correct device tokens, since you will be registering invalid device tokens in Notificare.
Functionality like APNS and Loyalty, require certificates that have an expiration date to function properly. Notificare keeps track of these certificate's expiry date will send you reminders by email and web push notifications to the dashboard. Without valid certificates, Notificare will not be able to send notifications or generate passes rendering useless this functionality. Make sure you renew and upload these certificates to Notificare in time to avoid that these features stop working.
Conflicts with other libraries
By default our library will also collect all your application exceptions. But if you are using other libraries for this purpose, like Crashlytics, you might want disable it by setting the property DISABLE_CRASH_LOG to YES under OPTIONS in the Notificare.plist.