This release fixes an issue causing app rejection due to the fingerprinting caused by the OpenIDFA feature.
To avoid any issue we have completely removed the OpenIDFA identifier and related code.
Also, we changed the policy for enabling the Apple IDFA. On the new version 1.7.0, the IDFA identifier will be enabled only if the developer adds the AdSupport library to the app project and enables the compiler flag SNOWPLOW_IDFA_ENABLED in the build settings.
More details here: IDFA tracking
Note: The previous versions of the tracker (before v.1.7.0) used a different flag SNOWPLOW_NO_IFA needed to disable IDFA feature. Instead, since the version 1.7.0 the IDFA will be enabled only if the SNOWPLOW_IDFA_ENABLED is set.
Fix issue of OpenIDFA causing App Rejection (#575)
This is weird, I’ve done a few tests but I haven’t been able to replicate the issue.
I see you use Cocoapods so probably you can provide some more information on what is going wrong there.
I think on Cocoapods you should be able to add a couple of breakpoints in SPUtilities.m inside your SnowplowTracker pod source code.
A first one here:
and another one here:
If you hit directly the second breakpoint it means that the preprocessor macros don’t work correctly.
Instead, if you hit the first breakpoint we can exclude the problem of the macros.
If the debugger stops there, we can narrow down the problem even more advancing step by step.
There are some conditions to pass in order to get the IDFA code, in theory you shouldn’t have any issue, but apparently something goes wrong in that block of code.
If you are able to test this that would be very helpful to spot the problem and plan some improvements or fixes in the tracker.
Let me know for any further help or doubt!
@Alex_Benini Thanks for the reply. After following your suggestion it seems like macro is working as expected and what causing the problem is isAdvertisingTrackingEnabled that always returns false on my end. I tried commenting out this block of code and now I’m getting the IDFA.