wails/v3/internal/flags/sign.go
Lea Anthony 3594b77666 feat(v3): add cross-platform build system and signing support
Add Docker-based cross-compilation for building Wails apps on any platform:
- Linux builds from macOS/Windows using Docker with Zig
- Windows builds with CGO from Linux/macOS using Docker
- macOS builds from Linux/Windows using Docker with osxcross

Add wails3 tool lipo command using konoui/lipo library for creating
macOS universal binaries on any platform.

Add code signing infrastructure:
- wails3 sign wrapper command (like build/package)
- wails3 tool sign low-level command for Taskfiles
- wails3 setup signing interactive wizard
- wails3 setup entitlements for macOS entitlements
- Keychain integration for secure credential storage

Update all platform Taskfiles with signing tasks:
- darwin:sign, darwin:sign:notarize
- windows:sign, windows:sign:installer
- linux:sign:deb, linux:sign:rpm, linux:sign:packages

Reorganize documentation:
- Move building/signing guides to guides/build/
- Add platform-specific packaging guides (macos, linux, windows)
- Add cross-platform build documentation
- Add comprehensive signing guide with CI/CD examples
- Add auto-updates guide and updater reference
- Add distribution tutorial

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 13:53:37 +11:00

26 lines
1.6 KiB
Go

package flags
// Sign contains flags for the sign command
type Sign struct {
Input string `name:"input" description:"Path to the file to sign"`
Output string `name:"output" description:"Output path (optional, defaults to in-place signing)"`
Verbose bool `name:"verbose" description:"Enable verbose output"`
// Windows/macOS certificate signing
Certificate string `name:"certificate" description:"Path to PKCS#12 (.pfx/.p12) certificate file"`
Password string `name:"password" description:"Certificate password (reads from keychain if not provided)"`
Thumbprint string `name:"thumbprint" description:"Certificate thumbprint in Windows certificate store"`
Timestamp string `name:"timestamp" description:"Timestamp server URL"`
// macOS specific
Identity string `name:"identity" description:"Signing identity (e.g., 'Developer ID Application: ...')"`
Entitlements string `name:"entitlements" description:"Path to entitlements plist file"`
HardenedRuntime bool `name:"hardened-runtime" description:"Enable hardened runtime (default: true for notarization)"`
Notarize bool `name:"notarize" description:"Submit for Apple notarization after signing"`
KeychainProfile string `name:"keychain-profile" description:"Keychain profile for notarization credentials"`
// Linux PGP signing
PGPKey string `name:"pgp-key" description:"Path to PGP private key file"`
PGPPassword string `name:"pgp-password" description:"PGP key password (reads from keychain if not provided)"`
Role string `name:"role" description:"DEB signing role (origin, maint, archive, builder)"`
}