share_intent_package 1.0.29
share_intent_package: ^1.0.29 copied to clipboard
Zero-configuration Flutter share intent plugin. Receive shared content from other apps with one-command setup. Fully automated iOS ShareExtension + Android intent filters.
Changelog #
All notable changes to this project will be documented in this file.
1.0.29 - 2025-12-10 #
📝 Documentation Update #
- 📱 Platform Badge: Added Android & iOS platform badge to README for better visibility on pub.dev
1.0.28 - 2025-12-09 #
📝 Documentation Update #
- ☕ Donation QR Code: Using GitHub raw image link for better compatibility with pub.dev
1.0.27 - 2025-12-09 #
📝 Documentation Update #
- ☕ Donation QR Code: Fixed QR code image visibility using public Google Drive link
- 🌐 Public Access: QR code now visible to all users on pub.dev
1.0.26 - 2025-12-09 #
📝 Documentation Update #
- ☕ Donate Section: Added donation QR code to README for supporters
- 📖 Better Layout: Moved support section to top for visibility
1.0.25 - 2025-12-09 #
✨ Example Project & Testing Improvements #
Example App Rebuilt
- 🔄 Fresh Example: Recreated example project with clean structure
- 📱 Android Tested: Verified share intent functionality on Android emulator
- ✅ All File Types: Confirmed support for images, videos, audio, documents, and text
- 🔧 Setup Scripts: Verified
setup_androidandsetup_ios_cleancommands work correctly
Supported Share Types
- ✅ Single file sharing (image, video, audio, document)
- ✅ Multiple file sharing (SEND_MULTIPLE intent)
- ✅ Text sharing (plain text, URLs)
- ✅ Mixed content (files + text)
- ✅ Any MIME type (
*/*)
1.0.24 - 2025-12-07 #
🔥 CRITICAL BUG FIX: Multiple File Sharing #
iOS ShareExtension Critical Fix
- 🚨 MAJOR BUG FIXED: ShareExtension was only showing the last file when multiple files were shared
- 🔄 Root Cause:
shareData["filePaths"] = [url.path]was overwriting the array instead of accumulating files - ✅ Solution: Implemented proper array accumulation using
allFilePaths.append(url.path) - 📱 Impact: Multiple file sharing now works correctly - sharing 2+ photos will show all files
- 🛠️ Setup Script: Fixed
setup_ios_clean.dartto generate corrected ShareViewController.swift - 🎯 Verification: Comprehensive logging added to help debug future sharing issues
Technical Details
Before (BROKEN):
shareData["filePaths"] = [url.path] // ❌ Overwrites previous files
After (FIXED):
var allFilePaths: [String] = [] // ✅ Collect all files
allFilePaths.append(url.path) // ✅ Accumulate each file
shareData["filePaths"] = allFilePaths // ✅ Use complete array
What This Fixes
- ✅ Multiple Photos: Sharing 2+ photos now shows all files instead of just the last one
- ✅ Mixed Content: Sharing multiple files + text content works correctly
- ✅ All File Types: Images, videos, documents, audio files - all properly accumulated
- ✅ Consistent Behavior: iOS now matches Android's multiple file handling
1.0.22 - 2025-12-07 #
🔧 Multiple File Handling & Communication Fix #
iOS ShareExtension Improvements
- ✅ Multiple Files Support: Fixed iOS ShareExtension to properly handle multiple files
- 📁 File Types: Added support for audio files, PDFs, ZIP archives
- 🔄 Array Handling: Fixed filePaths array to append files instead of overwriting
- 🎯 MIME Type Detection: Improved MIME type detection for different file types
- 📱 Cross-Platform: Ensures consistent behavior with Android multiple file support
- 🔗 Communication Fix: ShareExtension now saves data to both temp file (iOS Simulator) and UserDefaults (device)
- 🛠️ iOS Simulator: Fixed data sharing between ShareExtension and main app on iOS Simulator
Supported File Types (iOS & Android)
- 📝 Text: Plain text, URLs, rich text
- 🖼️ Images: JPEG, PNG, GIF, WebP, HEIC
- 🎥 Videos: MP4, MOV, AVI, WebM
- 🎵 Audio: MP3, WAV, AAC, M4A
- 📄 Documents: PDF, DOC, XLS, PPT
- 📦 Archives: ZIP, RAR
- 🗂️ Multiple Files: Mixed content types in single share
1.0.21 - 2025-12-06 #
📝 Documentation Fix #
- Fixed Android setup command typo in README.md (
dart run setup_android) - Clarified setup instructions for both iOS and Android
- No code changes, documentation only
1.0.20 - 2025-12-06 #
🚀 Complete Sharing Solution + Professional Documentation #
Major New Features
- ✅ Outbound Sharing: Share content TO other apps (not just receive)
- 📤 Share Text:
ShareIntentPackage.shareText('Hello World!') - 📁 Share Files:
ShareIntentPackage.shareFiles(['/path/to/image.jpg']) - 🔄 Share Mixed Content: Text + files in one share action
- 🎯 Cross-Platform: Works on both iOS (UIActivityViewController) and Android (Intent.ACTION_SEND)
Implementation Details
- 🔧 iOS: Native UIActivityViewController with iPad popover support
- 🤖 Android: Intent.ACTION_SEND with FileProvider for secure file sharing
- ✅ Error Handling: Proper validation and error messages
- 📋 File Validation: Checks file existence before sharing
Documentation Overhaul
- 📚 Professional README: Clean, structured documentation with clear sections
- 🎯 Quick Start Guide: 3-step setup with copy-paste code examples
- 📋 API Reference: Complete method documentation with return types
- 🛠️ Troubleshooting: Common issues and solutions
- ✨ Visual Design: Badges, emojis, and structured tables for better readability
1.0.19 - 2025-12-06 #
📚 Documentation Update #
- ✅ Enhanced README: Updated with comprehensive usage example showing proper initialization
- 🔧 Better Error Handling: Example shows proper async initialization and error handling
- 📱 Complete API Usage: Demonstrates
hasContent,isImage,isVideo,isUrlproperties - 💡 Real-world Example: Shows proper stream subscription management and lifecycle handling
1.0.18 - 2025-12-06 #
🚀 Release Ready - Zero Configuration #
Major Enhancements
- ✅ Fully Automated Setup: Complete zero-configuration setup for both iOS and Android
- 🎯 Robust Bundle ID Detection: Enhanced algorithm selects shortest bundle ID (main app) from multiple matches
- 🔧 Bulletproof App Groups: Consistent App Group configuration across all entitlement files
- 📁 Enhanced ShareExtension: Added temp file sharing for iOS Simulator compatibility
- 🔄 Re-run Safe: Setup commands can be run multiple times without conflicts
Cross-Platform Testing
- ✅ iOS ShareExtension: Automatic Xcode project configuration, no manual steps
- ✅ Android Intent Filters: Automatic AndroidManifest configuration
- ✅ Multiple Project Types: Tested across different bundle ID patterns and naming conventions
- ✅ Real Share Data: End-to-end testing confirms actual share functionality works
Developer Experience
- 🎯 One Command Setup:
setup_ios_cleanandsetup_androidexecutables work globally - 📋 Clear Logging: Detailed setup progress and bundle ID detection process
- 🛠️ Error Handling: Graceful handling of edge cases and project variations
- 📚 Clean Documentation: Concise README emphasizing zero manual configuration
1.0.17 - 2025-12-06 #
Enhanced #
- 🚀 Cross-Container Data Sharing: Enhanced data sharing mechanism to work reliably across iOS container isolation
- 📁 System Temp Directory: Updated to use system-wide
/tmp/directory for improved cross-container file sharing - 🔧 iOS Simulator Compatibility: Fixed App Groups issues in iOS Simulator with fallback file sharing mechanism
- ✅ Fully Tested: Complete end-to-end testing validates automated setup and sharing functionality
- 📚 Documentation Update: Updated README to highlight zero-configuration automated setup
1.0.13 - 2025-12-05 #
Fixed #
- 🐛 Entitlements Bug: Fixed ShareExtension entitlements creation to use passed bundle ID parameter instead of redeclaring
- 🔧 App Groups Configuration: Ensures ShareExtension uses correct App Groups with actual bundle ID
- 📱 Share Menu Fix: Complete fix for ShareExtension not appearing in iOS share menu
1.0.12 - 2025-12-04 #
Fixed #
- 🐛 Bundle ID Detection: Fixed bundle ID detection to read actual bundle ID from Xcode project instead of placeholder
- 🔧 App Groups: Ensures App Groups use correct bundle ID for both main app and ShareExtension
- 📱 Share Menu: Fixed issue where ShareExtension wouldn't appear in iOS share menu due to bundle ID mismatch
1.0.11 - 2025-12-04 #
Changed #
- 🚀 Complete Rewrite: Embedded all setup logic directly into Dart script eliminating shell script dependency
- ⚡ Zero Dependencies: Pure Dart implementation works with pub executable system without external scripts
- 🔧 Full Automation: Complete Xcode project modification including targets, build phases, file references
- 📱 Ready to Use: ShareExtension creation, configuration, and embedding all in single command
[1.0.11] - 2025-12-04 #
Fixed #
- 🎯 Complete Rewrite: Self-contained Dart executable with all setup logic embedded
- 📱 No Dependencies: Removes need for shell script execution, works directly via dart run
- 🔧 Pub.dev Ready: Executable works correctly when installed from pub.dev package
1.0.10 - 2025-12-04 #
Fixed #
- 🔧 Dart Wrapper: Improved script path debugging for better error reporting
- 📍 Path Resolution: Enhanced executable wrapper with directory listing for troubleshooting
1.0.9 - 2025-12-04 #
Fixed #
- 🔧 Executable Path: Fixed pubspec.yaml executable reference after removing duplicate script
- 📱 Script Execution: Ensures correct script runs without .dart extension lookup errors
- ✅ File Permissions: Made setup script properly executable
- 🛠️ Package Structure: Cleaned up duplicate scripts to avoid confusion
1.0.8 - 2025-12-04 #
Fixed #
- 🔧 Script Caching: Fixed executable caching issue that was running old script version
- 📱 Correct Script: Ensures the fully automatic script runs instead of manual steps version
- ✅ Cache Clearing: Forces rebuild of executable to use latest script version
- 🛠️ Execution Path: Fixed script execution path to use correct automation script
1.0.7 - 2025-12-04 #
Fixed #
- 🔧 Script Execution: Fixed published version to properly run automatic Xcode project modification
- 📱 Error Handling: Improved error detection with stack traces for debugging
- ✅ Complete Automation: Ensures ShareExtension target is actually created without manual steps
- 🛠️ Version Sync: Fixed mismatch between repository and published versions
1.0.6 - 2025-12-04 #
Fixed #
- 🔧 Xcode Target Creation: Fixed ShareExtension target not being properly added to Xcode project
- 📄 File References: Fixed file references being added correctly to project.pbxproj
- 🛠️ Error Handling: Added better error detection and logging for Xcode project modification
- ✅ Target Detection: Improved ShareExtension target detection logic
- 📱 Complete Automation: Fixed the "Unable to find target ShareExtension" pod install error
1.0.5 - 2025-12-04 #
Fixed #
- 🔧 App Groups Capability: Properly configures App Groups in main app entitlements file
- 📱 Resources Build Phase: Adds missing Resources build phase to ShareExtension target
- 🛠️ Complete Build Phases: Ensures both Sources and Resources phases are configured
- ✅ Main App Entitlements: Auto-creates/updates Runner.entitlements with App Groups
- 🎯 Proper Embedding: Complete ShareExtension embedding with all required configurations
1.0.4 - 2025-12-04 #
Enhanced #
- 🎯 Complete iOS Automation: Enhanced automatic Xcode project modification with proper ShareExtension embedding
- 🔧 Embed App Extensions: Automatically configures embedding phases for ShareExtension in main app target
- 📱 App Groups Configuration: Full automatic setup of App Groups capability and entitlements
- 🛠️ Target Dependencies: Proper dependency management between main app and ShareExtension targets
- ✅ Build Phase Management: Complete source, resource, and embedding build phases configuration
- 🚀 Zero Manual Steps: Comprehensive automation requiring no manual Xcode configuration
1.0.3 - 2025-12-04 #
Added #
- 🚀 FULLY AUTOMATIC iOS Setup: Complete ShareExtension configuration without any manual Xcode steps
- 🔧 Automatic Xcode Project Modification: Script now automatically adds ShareExtension target to Xcode project
- 📱 Complete Build Configuration: Automatically configures build settings, entitlements, and dependencies
- 🎯 Zero Manual Configuration: Users just run the command - everything is configured automatically
Enhanced #
- 🛠️ Smart Xcode Project Parsing: Intelligently modifies project.pbxproj with proper UUIDs and references
- 📋 Automatic Podfile Update: Adds ShareExtension target to Podfile automatically
- 🔐 Complete Entitlements Setup: App Groups and all required entitlements configured automatically
- 📱 Bundle ID Detection: Automatically detects and uses project's bundle ID for all configurations
Commands Now Available #
dart run share_intent_package:setup_ios_clean- FULLY AUTOMATIC iOS setup (no manual steps!)dart run share_intent_package:setup_android- Android intent filter setup
1.0.2 - 2025-12-04 #
Fixed #
- 📝 Corrected setup commands: Fixed installation commands to use
dart runinstead ofdart pub global run - 🔧 Flutter compatibility: Resolved Flutter package global activation limitation
- 📚 Updated documentation: All README examples now use the correct
dart run package:executablesyntax
Commands Now Available #
dart run share_intent_package:setup_ios_clean- iOS ShareExtension setupdart run share_intent_package:setup_android- Android intent filter setup
1.0.1 - 2025-12-04 #
Fixed #
- 🔧 Accessible setup scripts: Made setup scripts available as global executables
- 📚 Accurate documentation: Fixed misleading Android "zero configuration" claims
- 🤖 Automated Android setup: Added
setup_androidexecutable for intent filter configuration - 🛠️ Improved iOS setup: Enhanced
setup_ios_cleanexecutable with better error handling - 📋 Clear installation instructions: Updated README with correct global command usage
Commands Available (Fixed) #
dart run share_intent_package:setup_ios_clean- iOS ShareExtension setup (was incorrectly documented as global command)dart run share_intent_package:setup_android- Android intent filter setup (was incorrectly documented as global command)
1.0.0 - 2025-12-04 #
Added #
- 🎯 Complete share intent functionality for Flutter
- 📱 Cross-platform support (iOS 11+ and Android API 16+)
- 🚀 Universal content handling: text, URLs, images, videos, documents, multiple files
- ⚡ Real-time sharing: Receive content while app is running
- 🔧 Automated iOS setup:
setup_ios_ultimate_simplecommand with minimal manual steps - 📋 Simple Android setup: Intent filter configuration
- 🔍 Setup verification: Built-in
verify_setupcommand
Core API #
ShareIntentPackage.instance.init(): Initialize the pluginShareIntentPackage.instance.getInitialShare(): Get content when app launches from shareShareIntentPackage.instance.getShareStream(): Stream of shared content while app is runningShareIntentPackage.instance.reset(): Clear cached shared dataShareDataclass: Unified data structure for all shared content types
Platform Implementation #
- iOS: Swift-based ShareExtension with App Groups integration
- Android: Kotlin plugin with activity awareness and intent handling
- Flutter: Dart API with method channels and event channels
Content Support #
- Text: Plain text, URLs, web links
- Images: JPEG, PNG, GIF, WebP from camera, gallery, or other apps
- Videos: MP4, MOV, AVI from recordings or downloads
- Documents: PDF, Office files, ZIP archives, JSON, XML
- Multiple files: Batch sharing of mixed content types
- MIME types: Automatic detection and classification
0.0.1 Initial Development #
Features #
- ✅ Complete Android share intent handling (text, images, videos, files)
- ✅ iOS share extension support with automatic configuration
- ✅ Support for single and multiple file sharing
- ✅ Automatic MIME type detection and content URI handling
- ✅ Stream-based real-time sharing while app is running
- ✅ Initial share detection when app is launched from share intent
- ✅ Comprehensive file type support (images, videos, documents, etc.)
- ✅ Simple API with minimal setup required
- ✅ Automatic file copying and path management
- ✅ Complete example app with all features demonstrated