8000 Harden iOS export share presentation lifecycle by shroominic · Pull Request #84 · shroominic/OpenGlucose · GitHub
[go: up one dir, main page]

Skip to content

Harden iOS export share presentation lifecycle - #84

Open
shroominic wants to merge 1 commit into
mainfrom
fix/ios-export-presentation
Open

shroominic wants to merge 1 commit into
mainfrom
fix/ios-export-presentation

Conversation

@shroominic
Copy link
Copy Markdown
Owner

Summary

Hardens the native iOS archived-export share bridge against inactive or detached presenter selection and silent UIKit presentation refusal or stranding.

The urgent Flutter inherited-scope bug is intentionally out of scope. This PR is defense in depth and must not be included in the immediate hotfix release without physical-device verification.

Acceptance criteria

  • Select only a visible key window in a foreground-active scene.
  • Require the presenter view to be attached to that window.
  • Resolve refused, cancelled, or invisible presentations exactly once without leaving export permanently busy.
  • Return stable stage/reason-coded Flutter errors.
  • Preserve normal completion and iPhone/iPad popover behavior.

Change risk and impact

Risk class: R2 (health-data export/native platform behavior)

  • No public API or serialized export format changes.
  • Export files remain local, scoped, and deleted by the existing Dart flow.
  • iOS only.
  • No BLE, AI, destructive-operation, dependency, signing, or release configuration changes.

Evidence

  • make check passes.
  • make test-ios-native passes on iOS 26.5 / iPhone 17 Pro Simulator.
  • make build-ios passes for the unsigned release app.
  • Independent review reports no P0-P2 findings.
  • A physical-device system share-sheet smoke test remains required because hosted XCTest cannot reliably present UIActivityViewController.

Compatibility and rollback

  • No migration is required.
  • Roll back by reverting commit be05a46.
  • No release artifact was produced.
  • This PR is separate from the urgent root-cause hotfix and is not intended for that release.

Documentation

  • Changelog updated.
  • No dependency changes.

This branch has not been deployed

No deployments
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

0