문제

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?

도움이 되었습니까?

해결책

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.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top