Skip to content

Drop an app-supplied IDFA that matches the device's in any case - #97

Open
jrosendahl-opt wants to merge 1 commit into
masterfrom
fix/idfa-dedupe-case
Open

jrosendahl-opt wants to merge 1 commit into
masterfrom
fix/idfa-dedupe-case

Conversation

@jrosendahl-opt

@jrosendahl-opt jrosendahl-opt commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Why

When ATT allows it, the SDK prepends the device's IDFA and removes any copy of it the app passed in. That comparison was an exact match against uuidString, which is uppercase. If an app passes the same IDFA in lowercase or with whitespace, the copy isn't removed. Both are then encoded to the same a:<lowercased> value, so the request carries the ID twice. The Android SDK compares after normalizing and doesn't have this problem.

enrichIfNeeded compared the app's .appleIDFA values to the system IDFA's
uppercase uuidString exactly, so a lowercase (or space-padded) copy of the
same IDFA wasn't removed and the request carried two identical a: IDs once
encoded. Compare the encoded identifiers instead, as the Android SDK does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant