Skip to content

feat: expose invalidateRemoteConfigsCache, bump sandwich to 7.12.0 (DEV-1236) - #466

Merged
SpertsyanKM merged 2 commits into
mainfrom
kamo/dev-1236-sdk-iosandroid-obvyazki-refetch-rc-posle-identify-i-yavnii
Jul 30, 2026
Merged

feat: expose invalidateRemoteConfigsCache, bump sandwich to 7.12.0 (DEV-1236)#466
SpertsyanKM merged 2 commits into
mainfrom
kamo/dev-1236-sdk-iosandroid-obvyazki-refetch-rc-posle-identify-i-yavnii

Conversation

@SpertsyanKM

@SpertsyanKM SpertsyanKM commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

B4 exposure from the Remote Config targeting review (dash-mono PR #674). Linear: DEV-1236. Exposes the new cache invalidation API released in android-sdk 9.7.0 / qonversion-ios-sdk 6.14.0, bridged by sandwich 7.12.0.

What changed

  1. Sandwich pinned to 7.12.0 (Android + iOS). Note: the sandwich pod pins Qonversion exactly, so apps that also declare the native Qonversion pod directly must move to 6.14.0.
  2. New public API invalidateRemoteConfigsCache — a void no-callback pass-through to the native method. It performs no network request; it marks the remote configs cache stale so the next remoteConfig / remoteConfigList call fetches a fresh targeting evaluation. An in-flight remoteConfig load is re-issued once so its waiting calls receive a fresh evaluation (degrading to the superseded one if the retry fails); an in-flight remoteConfigList completes with the evaluation it started with. You do NOT need to call it after identify — the SDK invalidates on identity changes automatically. Call it after initialization (calling before initialization crashes on Android and no-ops on iOS, same as the other void bridges). Review round: the macOS platform copy (method channel case + podspec pin) is carried too — macOS has its own plugin file, not a symlink.

Release notes for this wrapper (minor bump)

  • Source-breaking note for the release: the abstract Qonversion class gained a new required member — custom implementations and hand-written mocks must add invalidateRemoteConfigsCache.

  • New: invalidateRemoteConfigsCache — invalidate the remote configs cache on demand (e.g. after setting a batch of user properties your targeting depends on).

  • Native SDKs updated: Android 9.7.0, iOS 6.14.0 — automatic remote configs cache invalidation on same-uid identify, never-worse re-issue of superseded in-flight loads, uncached bundled fallbacks with rate-limit tolerance (remote configs only).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Y4V5cx2SMU4VrfPntwfKJ9

SpertsyanKM and others added 2 commits July 30, 2026 19:17
Bridges the new native cache invalidation API (android-sdk 9.7.0 /
qonversion-ios-sdk 6.14.0 via sandwich 7.12.0). The method performs no
network request and has no callback - it marks the remote configs cache
stale so the next remoteConfig / remoteConfigList call fetches a fresh
targeting evaluation. An in-flight remoteConfig load is re-issued once;
an in-flight remoteConfigList completes with the evaluation it started
with. Not needed after identify - the SDK invalidates automatically.
Call after initialize.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- macOS is a declared platform with its own plugin copy (not a symlink):
  the missing invalidateRemoteConfigsCache case surfaced as a thrown
  MissingPluginException from a documented public API, and the stale
  macos podspec pin would have silently resolved a sandwich without the
  method. Both carried now, matching how every prior sandwich bump
  treated the macOS podspec.
- Doc: state the retry degradation explicitly (a failed re-issue delivers
  the previously received evaluation instead of an error) and the
  pre-initialization consequence (throws on Android, no-op on iOS).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@SpertsyanKM
SpertsyanKM merged commit f6ccc01 into main Jul 30, 2026
1 check passed
@SpertsyanKM
SpertsyanKM deleted the kamo/dev-1236-sdk-iosandroid-obvyazki-refetch-rc-posle-identify-i-yavnii branch July 30, 2026 17:02
@SpertsyanKM SpertsyanKM mentioned this pull request Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant