Troubleshooting - Common Problems

When implementing the iOS SDK, clients may encounter some compile time or runtime errors. This document aims to summarize such errors.

The invite isn’t showing when I expect it to

There are a number of reasons the invite may not be showing. Make sure of the following items when testing the display of invitations:

  1. Ensure you have a working network connection that is not being restricted by a firewall or proxy. The SDK must contact the ForeSee servers before showing an invitation.
  2. Ensure that the invite is not being declined due to a failed sampling check. If your sampling check is set to less than 100%, you may find it useful to call [ForeSee setSkipPoolingCheck:YES] to skip the check. Note: the skip method should not be used in your production environment.
  3. Ensure you start from a ‘Tracking’ state. Once it has displayed an invitation, the SDK will change state to restrict the number of invitations shown to the same user. The state can be reset by one of the following:
    1. Uninstall and reinstall the app
    2. Call [ForeSee resetState]. This will also reset all other SDK information including the launch count, first launch date and any significant events and as such it should not be called in the production environment.
  4. Make sure you are calling [ForeSee checkIfEligibleForSurvey] in the correct place. Calls placed in AppDelegate:application:didFinishLaunchingWithOptions will only get run on the first app launch or after the app is completely removed from memory. To check for eligibility every time the user switches to the app, add the check into AppDelegate:applicationWillEnterForeground:
  5. Make sure you are meeting the Trigger criteria. If you require 5 launches in your configuration file, make sure the app has been launched 5 times.

I’m experiencing a drop in respondents after a new release

A drop in respondents can occur for a number of different reasons:

  1. A change in our SDK has produced a change in behaviour. For example, a fix was made in v3.2 of our SDK which means fewer users will be successfully sampled. This would affect you if you upgraded from an SDK version prior to 3.2, but if you are seeing lower respondent counts and have changed to any SDK version in your new release, please contact us for additional support.
  2. You’ve changed the position of the eligibility check in your app so that…
    1. Some users no longer hit that point in the app
    2. Users are less likely to take a survey at the point you’ve chosen
  3. A reduction that leaves close to zero respondents could indicate that a change in your app code means your app is no longer implementing the SDK correctly; remember that some respondents could still be on a previous version. Please check the calls to the ForeSee SDK against the instructions in the Quick Start guide.
  4. A change has been made in the configuration you use (invitation criteria, repeatDays, etc.) which means fewer users become eligible. Please compare your foresee_configuration.json file both before and after your release to see if any changes have been made.
  5. A change in the OSs or devices used by your users has not been allowed for in our SDK. One example is compatibility for 64-bit devices, which was added in v3.3. While we strive to keep our SDK up to date with the latest technology, earlier versions of the SDK are likely to contain compatibility issues. Please be sure to upgrade to the latest version of the SDK for each new release.

Runtime error: ‘[UIDevice fs_isTablet]: unrecognized selector sent to instance’

The ForeSee.framework makes use of Objective-C categories. The -ObjC flag must be added to the OTHER_LDFLAGS field for the project settings.

The error: ‘Apple Mach-O Linker Error’

The ForeSee.framework requires linking a number of iOS frameworks. See the Quick Start guide for more information.

‘4c (l) – Configuration not found’ displays in the XCode console

This indicates that the foresee_configuration.json file has not been added to the project.


Other articles in this section:

  1. Debugging
  2. Disabling the SDK
  3. Common Problems (current article)