feat: adopt iOS SDK 0.0.12 (paste button grants consent) - #6
Open
ahsanalidotme wants to merge 1 commit into
Open
feat: adopt iOS SDK 0.0.12 (paste button grants consent)#6ahsanalidotme wants to merge 1 commit into
ahsanalidotme wants to merge 1 commit into
Conversation
- Bump podspec dependency LinkTrailSDK ~> 0.0.11 -> ~> 0.0.12 - 0.0.12 makes consent hold-until-decision: nothing leaves the device until the app records a decision. The SDK's own paste button records consent on tap; the wrapper's UIPasteControl component did not, so a tap would produce a held install and deferred attribution would silently stop working. - Add a grantsConsent prop (default true, matching native) that records consent before the token-carrying install. Uses the public setConsent since persistConsent is internal to the SDK; safe because the paste flow requires autoTrackInstall: false. - Regenerate example Podfile.lock at LinkTrailSDK 0.0.12 - Bump wrapper version to 0.0.5; update README + CHANGELOG + JSDoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adopts the LinkTrail iOS SDK 0.0.12 release.
What's in this release
LinkTrailSDK ~> 0.0.12(from0.0.11).<LinkTrailPasteButton/>now grants consent on tap — newgrantsConsentprop, defaulttrue.example/ios/Podfile.lockatLinkTrailSDK 0.0.12.requireConsentJSDoc updated for the new contract.Why the paste button had to change
0.0.12 makes consent hold-until-decision: until the app records a decision, nothing leaves the device — no install, no clipboard read, no device identifier.
The SDK's own
LinkTrailPasteButtonhandles this by recording consent on tap. This wrapper does not use that view — it has its ownUIPasteControl-based Fabric component (needed for the RN theming props), and it only calledtrackInstall(clickToken:). So a plain version bump would have left the paste flow silently broken: the tap's install would be held by the deny-by-default gate and deferred attribution would stop working, with no error.grantsConsent(defaulttrue) restores parity — the deliberate tap is the affirmative act, so consent is recorded before the token-carrying install.One caveat worth a reviewer's eye
The native button uses the SDK-internal
persistConsent(true). That symbol isn't public, so the wrapper uses the publicsetConsent(true)instead. The two differ only whenautoTrackInstall: true, wheresetConsentfires its own token-less install first, consumes the one-shot, and loses the token.The paste flow already requires
autoTrackInstall: false(documented, and the install is meant to wait for the tap), so this is safe as used and the ordering is commented in the code. If the iOS SDK madepersistConsentpublic, the wrapper could match native exactly — worth considering upstream.An app that leaves
requireConsenton (the default) and never callssetConsentnow sends nothing at all. Either callsetConsentwhen the consent UI resolves, or setrequireConsent: falseif consent is handled elsewhere. Documented in the README and CHANGELOG.Verification
tsctypecheck andeslintpass (only pre-existing deep-import warnings).bool grantsConsent{true}inProps.h.0.0.12and dev-pod constraint~> 0.0.12) — the mismatch that broke CI on the 0.0.11 PR.