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 setu开发者_StackOverflow社区p 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?
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.
精彩评论