Fix Android image share workflow and add local plugin persistence
- Add SafeArea and SharedImage plugins to capacitor.plugins.json - Create restore-local-plugins.js to persist plugins after cap sync - Integrate plugin restoration into build scripts - Improve Android share intent timing with retry logic - Clean up debug logging while keeping essential error handling - Add documentation for local plugin management Fixes issue where SharedImage plugin wasn't recognized, causing "UNIMPLEMENTED" errors. Image sharing now works correctly on Android.
This commit is contained in:
60
scripts/README-restore-local-plugins.md
Normal file
60
scripts/README-restore-local-plugins.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Restore Local Capacitor Plugins
|
||||
|
||||
## Overview
|
||||
|
||||
The `restore-local-plugins.js` script ensures that local custom Capacitor plugins (`SafeArea` and `SharedImage`) are automatically restored to `android/app/src/main/assets/capacitor.plugins.json` after running `npx cap sync android`.
|
||||
|
||||
## Why This Is Needed
|
||||
|
||||
The `capacitor.plugins.json` file is auto-generated by Capacitor during `npx cap sync` and gets overwritten, removing any manually added local plugins. This script automatically restores them.
|
||||
|
||||
## Usage
|
||||
|
||||
### Automatic (Recommended)
|
||||
|
||||
The script is automatically run by:
|
||||
- `./scripts/build-android.sh` (after `cap sync`)
|
||||
- `npm run build:capacitor:sync`
|
||||
- `npm run build:native`
|
||||
|
||||
### Manual
|
||||
|
||||
If you run `npx cap sync android` directly, you can restore plugins manually:
|
||||
|
||||
```bash
|
||||
node scripts/restore-local-plugins.js
|
||||
```
|
||||
|
||||
## What It Does
|
||||
|
||||
1. Reads `android/app/src/main/assets/capacitor.plugins.json`
|
||||
2. Checks if local plugins (`SafeArea` and `SharedImage`) are present
|
||||
3. Adds any missing local plugins
|
||||
4. Preserves the existing JSON format
|
||||
|
||||
## Local Plugins
|
||||
|
||||
The following local plugins are automatically restored:
|
||||
|
||||
- **SafeArea**: `app.timesafari.safearea.SafeAreaPlugin`
|
||||
- **SharedImage**: `app.timesafari.sharedimage.SharedImagePlugin`
|
||||
|
||||
## Adding New Local Plugins
|
||||
|
||||
To add a new local plugin, edit `scripts/restore-local-plugins.js` and add it to the `LOCAL_PLUGINS` array:
|
||||
|
||||
```javascript
|
||||
const LOCAL_PLUGINS = [
|
||||
// ... existing plugins ...
|
||||
{
|
||||
pkg: 'YourPluginName',
|
||||
classpath: 'app.timesafari.yourpackage.YourPluginClass'
|
||||
}
|
||||
];
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- The script is idempotent - running it multiple times won't create duplicates
|
||||
- The script preserves the existing JSON formatting (tabs, etc.)
|
||||
- If the plugins file doesn't exist, the script will exit with an error (run `npx cap sync android` first)
|
||||
Reference in New Issue
Block a user