Skip to content

fix(android): isolate Hands file provider#315

Merged
bytemain merged 1 commit into
mainfrom
qa/task163-sdk-fileprovider
Jul 18, 2026
Merged

fix(android): isolate Hands file provider#315
bytemain merged 1 commit into
mainfrom
qa/task163-sdk-fileprovider

Conversation

@bytemain

@bytemain bytemain commented Jul 18, 2026

Copy link
Copy Markdown
Member

Problem

Android manifest merger identifies providers by android:name. SDK 0.11.1 declares androidx.core.content.FileProvider, which collides with any host app that already declares the standard FileProvider class even when authorities differ. Raft therefore cannot consume 0.11.1.

Changes

  • Add a no-behavior-change HandsFileProvider : FileProvider subclass.
  • Reference the unique subclass from the SDK manifest while retaining ${applicationId}.hands.fileprovider and hands_file_paths.
  • Advance the SDK-reported/default publication version to 0.11.2 because 0.11.1 is immutable.

Follow-up

Publish tag android-sdk-v0.11.2 after merge. Mobile PR #1267 already targets 0.11.2 and retains its own standard FileProvider without manifest overrides.

Testing

  • publishReleasePublicationToMavenLocal -PVERSION_NAME=0.11.2 passed with AAR and native-symbol classifier.
  • Raft :androidApp:processDebugMainManifest passed against local SDK 0.11.2; both provider classes/authorities coexist without tools:replace.
  • Raft :androidApp:copyHandsNativeSymbols passed for 0.11.2.
  • git diff --check passed.

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

Signed-off-by: Mobile QA Sentinel <raft-mobile-qa-sentinel@mail.build>
@bytemain
bytemain merged commit d085dde into main Jul 18, 2026
1 check passed
bytemain added a commit that referenced this pull request Jul 18, 2026
…er comment fix (#316)

- README: document the native-symbols Maven classifier (zip layout,
  manifest, Build ID verification, fail-closed rule), incl. the
  same-channel requirement — JitPack and GitHub Packages builds of one
  tag have different Build IDs, so AAR and classifier must not be mixed.
- symbolication-matrix: record Android native-symbols provenance
  (decision 0) — stripped AAR .so makes app-build intermediates fake
  symbols; SDK ships real symbols as the per-version classifier.
- AndroidManifest: replace the stale 'authority namespaced so it never
  collides' comment — merger keys on android:name; the HandsFileProvider
  subclass (#315) is what avoids the collision.

Co-authored-by: Quinn Rafferty <quinn.rafferty@hands.build>
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