This commit is contained in:
+27
-28
@@ -5,44 +5,43 @@ sessions can pick them up without losing context.
|
||||
|
||||
## Backlog
|
||||
|
||||
### iOS Share Sheet Integration (Deferred)
|
||||
### iOS Share Sheet Integration Verification
|
||||
|
||||
Status: `deferred`
|
||||
Status: `partially implemented, needs device verification`
|
||||
Priority: `high` (for real cross-app sharing UX on iPhone/iPad)
|
||||
|
||||
Problem
|
||||
- The app does not appear in the iOS share sheet yet.
|
||||
- `receive_sharing_intent` is added in Flutter (`pubspec.yaml`), but the iOS
|
||||
Share Extension target is not configured in the Xcode project.
|
||||
- The repository now contains native iOS Share Extension and Save Action target
|
||||
files, and the Xcode project references those targets.
|
||||
- The remaining work is to verify the end-to-end behavior on real devices and
|
||||
keep CocoaPods/Xcode target wiring healthy as dependencies change.
|
||||
|
||||
What is missing (current repo state)
|
||||
- No `ios/Share Extension/` target files in the project
|
||||
- No Share Extension target configured in `ios/Runner.xcodeproj/project.pbxproj`
|
||||
- No extension target block in `ios/Podfile`
|
||||
- No shared App Group capability setup for `Runner` + extension
|
||||
Current implementation touchpoints
|
||||
- `ios/Share Extension/`
|
||||
- `ios/Save Action/`
|
||||
- `ios/Runner.xcodeproj/project.pbxproj`
|
||||
- `ios/Runner/Info.plist`
|
||||
- `lib/features/share_intake/presentation/incoming_share_listener.dart`
|
||||
|
||||
Implementation plan (later)
|
||||
1. Create iOS `Share Extension` target in Xcode.
|
||||
2. Add/port extension files based on `receive_sharing_intent` example:
|
||||
- `Share Extension/Info.plist`
|
||||
- `ShareViewController.swift` (inherits `RSIShareViewController`)
|
||||
- extension entitlements file
|
||||
3. Update `ios/Runner/Info.plist` with plugin-required app group / URL scheme
|
||||
keys.
|
||||
4. Add extension target to `ios/Podfile` (`target 'Share Extension' do ...`).
|
||||
5. Enable App Groups in both targets (`Runner` and `Share Extension`) with the
|
||||
same group id.
|
||||
6. Verify build phase ordering (`Embed Foundation Extension` before `Thin Binary`)
|
||||
if needed.
|
||||
7. Test text sharing from iOS Simulator apps (Notes/Safari).
|
||||
8. Test real WhatsApp/iMessage sharing on a physical iPhone (simulator is not a
|
||||
reliable substitute for chat metadata behavior).
|
||||
Verification plan
|
||||
1. Run `flutter pub get` and `pod install` from `ios/` when native dependency
|
||||
versions change.
|
||||
2. Open the workspace in Xcode and verify Runner, Share Extension, and Save
|
||||
Action signing/App Group capabilities.
|
||||
3. Confirm `APP_GROUP_ID` / `CUSTOM_GROUP_ID` resolves consistently for all
|
||||
targets.
|
||||
4. Verify build phase ordering (`Embed Foundation Extension` before `Thin Binary`)
|
||||
if Xcode reports extension embed issues.
|
||||
5. Test text sharing from iOS Simulator apps such as Notes and Safari.
|
||||
6. Test real WhatsApp/iMessage sharing on a physical iPhone. Simulator behavior
|
||||
is not a reliable substitute for chat metadata behavior.
|
||||
7. Confirm imported shares reach either the review sheet or Share Inbox.
|
||||
|
||||
Notes
|
||||
- The app already has an in-app fallback path for testing ingest logic:
|
||||
`Settings` -> `Simulate WhatsApp Share`.
|
||||
- Flutter-side ingest/parsing/inbox routing is implemented; this backlog item is
|
||||
specifically native iOS share-extension wiring.
|
||||
- Flutter-side ingest/parsing/inbox routing is implemented. See
|
||||
`docs/SHARE_INTAKE.md` for the current pipeline.
|
||||
|
||||
## Future Ideas (placeholder)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user