SDK

Troubleshooting

In this page you'll learn what are the most common mistakes when implementing the Notificare library for iOS.

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. Please read more about configuration file here.

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.

Expired Certificates

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.

Disable App Delegate Proxy

Always check if the property DISABLE_APP_DELEGATE_PROXY, under OPTIONS in the Notificare.plist is set to YES. For this module, we do not support the fully managed option therefore failing to do this will eventually prevent our module from working properly.

Compiler Errors when using Swift

When using Swift in your Flutter project you will encounter compiler errors such as Include of non-modular header inside framework module. To circumvent this, you will need to set an additional option in your project's settings. For each target in your project, go to the Build Settings tab and search for Allow Non-modular Includes in Framework Modules as shown below:

non modular headers

And make sure that option is set to YES. This will effectively fix any framework includes related errors.

Xcode 12 Simulator

In this version of Xcode, Apple includes arm64 as a valid architecture for the simulator, which are supported by Macs using Apple's Silicon Arm chips. Prior to that, the Xcode Simulator only supported x86_64 architectures in Intel powered machines. Because our library does not include arm64 for the simulator, if your project attempts to run our SDK with that architecture, you might encounter compiler errors as follows:

... building for iOS Simulator, but linking in object file built for iOS, file '../libNotificarePushLib.a' for architecture arm64

When that is the case, make sure you set the Debug option of Build Active Architecture Only to YES, under the tab Build Settings:

build active architectures only

This will prevent Xcode from attempting to run your app on the Simulator, using an architecture that your machine does not support.