Question

I have an app I am working on that is a universal iPhone/iPad app. I have been wanting to use analytics for quite some time now and so I went in and setup the Flurry sdk, implemented a few of the methods, and I was set to go.

A few other things happened with the app that made me think I should update my SDK, so I went ahead and updated to 3.2.4, and now when I try and run the app on my iPad, there are some errors:

_UIBackgroundTaskInvalid", referenced from:

_UIBackgroundTaskInvalid$non_lazy_ptr in libFlurry.a(FlurryAPI.o)

(maybe you meant: _UIBackgroundTaskInvalid$non_lazy_ptr)

ld: symbol(s) not found

collect2: ld returned 1 exit status

After doing some reading, it looks as though Apple is trying to block the use of Flurry's api to get information about the user's device.

The problem is, before I downloaded that update, there wasn't any problems, and there weren't any errors. Can I just go back to the old one and claim ignorance? Will Apple reject the update if it uses Flurry?

What should I do?

Was it helpful?

Solution

UIBackgroundTaskInvalid was added in 4.0. It looks like libFlurry.a is compiled for OS 4.0. It will not link against the 3.2 SDK. There are two ways to fix this:

  • Set the Base SDK to 4.0 (or 4.1 or whatever) and the Deployment Target to 3.2 (or 3.1 or whatever). This is probably what you should be doing anyway.
  • Rebuild libFlurry.a against the 3.2 SDK.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top