Flurry 4.2.2 SDK not sending events session data in iOS

events, flurry, ios, sdk, tracking

Solution

The issue which seems to be unique to Flurry SDK 4.2.2:

In 4.2.2 there is a new method:

+ (void)setBackgroundSessionEnabled:(BOOL)setBackgroundSessionEnabled;

It automatically gets set to `YES` if there are any `UIBackgroundModes` for your app. Our app uses the GPS in the background. Therefore Flurry will never post session data when going to the background.

When I force `[Flurry setBackgroundSessionEnabled:NO];` then it sends up the session data when the Home Button is pressed and the app goes to the background.

I am not sure how this could ever work otherwise. We don't have a need to use Flurry to update GPS locations so this can work for us now.

Hopefully this helps others struggling with this problem.

Update: 6/17/2014:

I found more on this in Flurry's FAQ

Problem

I know that there is a delay in Flurry reporting, however, we are seeing no results the following day on Flurry's reporting. ``` [Flurry setDebugLogEnabled:YES]; [Flurry setLogLevel:FlurryLogLevelDebug]; [Flurry startSession:_appSettings.flurryAppId]; [Flurry setSessionReportsOnCloseEnabled:YES]; [Flurry setSessionReportsOnPauseEnabled:YES]; [Flurry setEventLoggingEnabled:YES]; UIDevice *device = [UIDevice currentDevice]; [Flurry logEvent:@"SESSION_START" withParameters:[NSDictionary dictionaryWithObjectsAndKeys:[device systemVersion], @"OS", nil] timed:YES]; ``` Our logs show the individual Flurry log calls occurring within the app. What we do NOT see is anything suggesting that the information is sent to Flurry. Both `setSessionReportsOnPauseEnabled:` and `setSessionReportsOnCloseEnabled:` are set to `YES` but there is no communication to Flurry of session data when the app is paused or closed. When I restart the app, Flurry attempts to send session data that unfortunately results in: ``` FlurrySession: Add crashed former session ``` As instructed, we started the Flurry session in: ``` - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions method of your AppDelegate ``` According to Flurry's website, we are not tracking any Events. We are using Flurry 4.2.2 SDK

Original source