fix(electron): added macos file associations
This commit is contained in:
242
electron/PKG_INSTALLER_GUIDE.md
Normal file
242
electron/PKG_INSTALLER_GUIDE.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# 4DSTAR Bundle Manager .pkg Installer Guide
|
||||
|
||||
## Overview
|
||||
|
||||
The 4DSTAR Bundle Manager now includes a professional macOS `.pkg` installer that provides a seamless installation experience with automatic file association setup and dependency guidance.
|
||||
|
||||
## What's Included
|
||||
|
||||
### 📦 **Professional Installer Package**
|
||||
- Native macOS `.pkg` installer format
|
||||
- Automatic Launch Services refresh
|
||||
- File association setup
|
||||
- Custom icon registration
|
||||
- Dependency information dialogs
|
||||
|
||||
### 🔧 **Automatic Post-Install Setup**
|
||||
- Launch Services database refresh
|
||||
- File association registration
|
||||
- Icon cache clearing
|
||||
- Finder restart for immediate functionality
|
||||
|
||||
### 📋 **User Guidance**
|
||||
- Welcome dialog explaining system requirements
|
||||
- Clear distinction between basic and advanced usage
|
||||
- Optional dependency installation instructions
|
||||
- Conclusion dialog with next steps
|
||||
|
||||
## Installation Experience
|
||||
|
||||
### 1. **Welcome Screen**
|
||||
Users see a comprehensive welcome dialog that explains:
|
||||
- **Basic Usage**: No dependencies required for bundle management
|
||||
- **Advanced Usage**: Docker and Meson needed for plugin building
|
||||
- **System Requirements**: macOS 10.12+ minimum
|
||||
- **What's Included**: App, file associations, custom icons
|
||||
|
||||
### 2. **Standard macOS Installation**
|
||||
- License agreement (if configured)
|
||||
- Installation destination (defaults to /Applications)
|
||||
- Administrator password prompt
|
||||
- Installation progress
|
||||
|
||||
### 3. **Automatic Post-Install**
|
||||
The installer automatically:
|
||||
- Refreshes Launch Services database
|
||||
- Registers file associations for .fbundle and .opat files
|
||||
- Clears icon caches
|
||||
- Restarts Finder
|
||||
- Logs all operations to `/tmp/4dstar-postinstall.log`
|
||||
|
||||
### 4. **Conclusion Screen**
|
||||
Users see a success dialog with:
|
||||
- Installation confirmation
|
||||
- Getting started instructions
|
||||
- Optional dependency installation commands
|
||||
- Troubleshooting information
|
||||
|
||||
## File Associations
|
||||
|
||||
### Supported File Types
|
||||
- **`.fbundle`**: 4DSTAR Plugin Bundle Files
|
||||
- **`.opat`**: OPAT Data Files
|
||||
|
||||
### What Works After Installation
|
||||
- ✅ Double-click files to open in 4DSTAR Bundle Manager
|
||||
- ✅ Right-click → "Open with 4DSTAR Bundle Manager"
|
||||
- ✅ Custom file icons in Finder
|
||||
- ✅ Proper file type descriptions
|
||||
- ✅ Immediate functionality (no restart required)
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Required (Always)
|
||||
- macOS 10.12 or later
|
||||
- No additional dependencies for basic bundle management
|
||||
|
||||
### Optional (Advanced Features)
|
||||
- **Docker Desktop**: For cross-platform plugin builds
|
||||
- **Meson Build System**: For native plugin compilation
|
||||
- **Xcode Command Line Tools**: For C++ compilation
|
||||
|
||||
### Installation Commands (Optional)
|
||||
```bash
|
||||
# Install Xcode Command Line Tools
|
||||
xcode-select --install
|
||||
|
||||
# Install Meson via Homebrew
|
||||
brew install meson
|
||||
|
||||
# Download Docker Desktop
|
||||
# Visit: https://docker.com/products/docker-desktop
|
||||
```
|
||||
|
||||
## Build Configuration
|
||||
|
||||
### Package.json Configuration
|
||||
```json
|
||||
{
|
||||
"build": {
|
||||
"mac": {
|
||||
"target": [
|
||||
{ "target": "dmg", "arch": ["x64", "arm64"] },
|
||||
{ "target": "pkg", "arch": ["x64", "arm64"] },
|
||||
{ "target": "zip", "arch": ["x64", "arm64"] }
|
||||
]
|
||||
},
|
||||
"pkg": {
|
||||
"scripts": "installer-scripts",
|
||||
"welcome": "installer-resources/welcome.html",
|
||||
"conclusion": "installer-resources/conclusion.html",
|
||||
"installLocation": "/Applications",
|
||||
"mustClose": ["com.fourdst.bundlemanager"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### File Structure
|
||||
```
|
||||
electron/
|
||||
├── installer-scripts/
|
||||
│ └── postinstall # Post-install script
|
||||
├── installer-resources/
|
||||
│ ├── welcome.html # Welcome dialog
|
||||
│ └── conclusion.html # Conclusion dialog
|
||||
├── icons/
|
||||
│ ├── app-icon.icns # Main app icon
|
||||
│ ├── fbundle-icon.icns # .fbundle file icon
|
||||
│ └── opat-icon.icns # .opat file icon
|
||||
└── package.json # Build configuration
|
||||
```
|
||||
|
||||
## Building the Installer
|
||||
|
||||
### Generate All Installers
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Generate Only .pkg
|
||||
```bash
|
||||
npx electron-builder --mac pkg
|
||||
```
|
||||
|
||||
### Output Files
|
||||
- `dist/4DSTAR Bundle Manager-1.0.0.pkg` (x64)
|
||||
- `dist/4DSTAR Bundle Manager-1.0.0-arm64.pkg` (ARM64)
|
||||
- Plus traditional .dmg and .zip files
|
||||
|
||||
## Post-Install Script Details
|
||||
|
||||
### What It Does
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Reset Launch Services database
|
||||
lsregister -kill -r -domain local -domain system -domain user
|
||||
|
||||
# Register the app bundle
|
||||
lsregister -f "/Applications/4DSTAR Bundle Manager.app"
|
||||
|
||||
# Clear icon caches
|
||||
rm -rf ~/Library/Caches/com.apple.iconservices.store
|
||||
rm -rf /Library/Caches/com.apple.iconservices.store
|
||||
|
||||
# Restart Finder
|
||||
killall Finder
|
||||
```
|
||||
|
||||
### Logging
|
||||
All operations are logged to `/tmp/4dstar-postinstall.log` for troubleshooting.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### If File Associations Don't Work
|
||||
1. Check post-install log: `cat /tmp/4dstar-postinstall.log`
|
||||
2. Manually refresh: `npm run refresh-icons`
|
||||
3. Right-click file → Get Info → Change default app
|
||||
|
||||
### If Icons Don't Appear
|
||||
1. Wait 2-3 minutes for macOS to update
|
||||
2. Log out and back in
|
||||
3. Restart the Mac
|
||||
4. Check icon cache clearing in post-install log
|
||||
|
||||
### If Installation Fails
|
||||
1. Ensure you have administrator privileges
|
||||
2. Close any running instances of the app
|
||||
3. Check available disk space (>200MB required)
|
||||
4. Try installing from a different location
|
||||
|
||||
## Developer Notes
|
||||
|
||||
### Testing the Installer
|
||||
1. Build the .pkg installer
|
||||
2. Test on a clean macOS system or VM
|
||||
3. Verify file associations work immediately
|
||||
4. Check that icons appear in Finder
|
||||
5. Test with both .fbundle and .opat files
|
||||
|
||||
### Customizing Dialogs
|
||||
- Edit `installer-resources/welcome.html` for welcome content
|
||||
- Edit `installer-resources/conclusion.html` for conclusion content
|
||||
- HTML/CSS styling is supported
|
||||
- Keep content concise and user-friendly
|
||||
|
||||
### Modifying Post-Install Script
|
||||
- Edit `installer-scripts/postinstall`
|
||||
- Ensure script remains executable: `chmod +x postinstall`
|
||||
- Test thoroughly on different macOS versions
|
||||
- Add logging for all operations
|
||||
|
||||
## Distribution
|
||||
|
||||
### Recommended Distribution Method
|
||||
1. **Primary**: `.pkg` installer for best user experience
|
||||
2. **Alternative**: `.dmg` for users who prefer disk images
|
||||
3. **Developer**: `.zip` for automated deployment
|
||||
|
||||
### Code Signing (Production)
|
||||
For production distribution:
|
||||
1. Obtain Apple Developer ID certificate
|
||||
2. Configure code signing in package.json
|
||||
3. Notarize the installer with Apple
|
||||
4. Test on systems with Gatekeeper enabled
|
||||
|
||||
## User Support
|
||||
|
||||
### Common User Questions
|
||||
|
||||
**Q: Do I need Docker to use the app?**
|
||||
A: No, Docker is only needed for building plugins. Basic bundle management works without any additional software.
|
||||
|
||||
**Q: Why do I need administrator privileges?**
|
||||
A: The installer needs to install the app to /Applications and register file associations system-wide.
|
||||
|
||||
**Q: Can I install to a different location?**
|
||||
A: The .pkg installer installs to /Applications by default. Use the .dmg version for custom locations.
|
||||
|
||||
**Q: Will this work on older Macs?**
|
||||
A: Yes, the app supports macOS 10.12 and later on both Intel and Apple Silicon Macs.
|
||||
|
||||
This comprehensive installer solution provides a professional, user-friendly installation experience that handles all technical setup automatically while clearly communicating optional dependencies to users.
|
||||
Reference in New Issue
Block a user