My app was just rejected for using the Ad support framework. Which library is responsible? My app was just rejected for using the Ad support framework. Which library is responsible? ios ios

My app was just rejected for using the Ad support framework. Which library is responsible?


In Terminal:

  1. Go to the root folder of your project
  2. Type: grep -r advertisingIdentifier . (the dot at the end is critical)

This will recursively check every file, and give you the name of the offending library.

(in my case, it was Flurry)


Update

Google released Google Analytics Services iOS SDK v3.03c which removes the AdSupport.framework dependency by default.

Full changelog entry for Release Version 3.03c (February 19, 2014): https://developers.google.com/analytics/devguides/collection/ios/changelog

Old Awnser

My problem was with Google Analytics and TestFlight.

For TestFlight I just update the library to the version 2.2.1 (https://www.testflightapp.com/sdk/ios/release_notes/2.2.1/).

But for updating Google Analytics I had to remove the -ObjC flag. But as I use Cocoapods to manage some of third libraries, I couldn't just remove it. So I did the follow:

1 - started updating the libGoogleAnalytics.a to Version 3.03a (February 5, 2014)

2 - then a removed also the AdSupport.framework

3 - added "-force_load\ "${PROJECT_DIR}/Source/Library/GoogleAnalyticsServicesiOS_3.03a"" under "Target --> Build Settings --> Other Linker Flags"(Note that in my project the GoogleAnalytics is inside /Source/Library/ folder, and you have to configure your own)

But as I coudn't remove -ObjC flag I searched for how to use -force_load flag with Cocoapods, then I found two useful links:

1 - https://github.com/CocoaPods/CocoaPods/issues/712

2 - http://www.deanmao.com/2012/12/31/linker-error-using-cocoapods/

To summarize I changed the -ObjC flag for "-force_load $(TARGET_BUILD_DIR)/libPods.a" also under "Target --> Build Settings --> Other Linker Flags"

But again, when I tried to publish my app I got an error telling me that the compiler didn't find libPods.a, so I went to "Target --> Build Settings --> Other Linker Flags --> Release" and change this string $(TARGET_BUILD_DIR) to ${BUILT_PRODUCTS_DIR}.

So my Other Linker Flags became like the image below.Other Linker Flags

Hope to help somebody.

Sorry for my english.=]


For me, Flurry Analytics and TestFlight were both the problem.

For TestFlight, it's as easy as updating it. The 2.2.1 version won't cause any problem (I checked using strings, as Apple suggest)

For Flurry, there is currently no fix apart from removing Flurry, and contrary to Lou Weed suggestion, even if AdSupport.framework is not linked, your app will be rejected.

Here is Flurry support answer :

"Thank you for reaching out to Flurry. We have recently learned that Apple has rejected some apps it believes are using the Identifier for Advertising (IDFA) without including ad functionality. Please note that Flurry does not collect the IDFA unless an app includes the AdSupport.framework for ad functionality. We are seeking clarification with Apple and we will update our affected customers as we learn more over the next several days."

Flurry just released the version 4.3.2 of their SDK, which specifically address that problem.