Membuat Installer
Ringkasan
Section titled “Ringkasan”Buat installer profesional untuk aplikasi Wails Anda di semua platform.
Installer per Platform
Section titled “Installer per Platform”NSIS Installer
Section titled “NSIS Installer”# Install NSIS# Download from: https://nsis.sourceforge.io/
# Create installer script (installer.nsi)makensis installer.nsiinstaller.nsi:
!define APPNAME "MyApp"!define VERSION "1.0.0"
Name "${APPNAME}"OutFile "MyApp-Setup.exe"InstallDir "$PROGRAMFILES\${APPNAME}"
Section "Install" SetOutPath "$INSTDIR" File "build\bin\myapp.exe" CreateShortcut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\myapp.exe"SectionEndWiX Toolset
Section titled “WiX Toolset”Alternatif untuk installer MSI.
Pembuatan DMG
Section titled “Pembuatan DMG”# Create DMGhdiutil create -volname "MyApp" -srcfolder bin/MyApp.app -ov -format UDZO MyApp.dmgCode Signing
Section titled “Code Signing”# Sign applicationcodesign --deep --force --verify --verbose --sign "Developer ID" MyApp.app
# Notarizexcrun notarytool submit MyApp.dmg --apple-id "email" --password "app-password"App Store
Section titled “App Store”Gunakan Xcode untuk distribusi App Store.
Paket DEB
Section titled “Paket DEB”# Create package structuremkdir -p myapp_1.0.0/DEBIANmkdir -p myapp_1.0.0/usr/bin
# Copy binarycp bin/myapp myapp_1.0.0/usr/bin/
# Create control filecat > myapp_1.0.0/DEBIAN/control << EOFPackage: myappVersion: 1.0.0Architecture: amd64Maintainer: Your NameDescription: My ApplicationEOF
# Build packagedpkg-deb --build myapp_1.0.0Paket RPM
Section titled “Paket RPM”Gunakan rpmbuild untuk distribusi berbasis RPM.
AppImage
Section titled “AppImage”# Use appimagetoolappimagetool myapp.AppDirPengemasan Otomatis
Section titled “Pengemasan Otomatis”Menggunakan GoReleaser
Section titled “Menggunakan GoReleaser”project_name: myapp
builds: - binary: myapp goos: - windows - darwin - linux goarch: - amd64 - arm64
archives: - format: zip name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
nfpms: - formats: - deb - rpm vendor: Your Company homepage: https://example.com description: My ApplicationPraktik Terbaik
Section titled “Praktik Terbaik”✅ Lakukan
Section titled “✅ Lakukan”- Code sign di semua platform
- Sertakan informasi versi
- Buat uninstaller
- Uji proses instalasi
- Sediakan dokumentasi yang jelas
❌ Jangan
Section titled “❌ Jangan”- Jangan lewati code signing
- Jangan lupa asosiasi file
- Jangan hardcode path
- Jangan lewati pengujian
Langkah Selanjutnya
Section titled “Langkah Selanjutnya”- In-App Updater - Tambahkan self-update ke aplikasi Anda
- Cross-Platform Building - Build untuk banyak platform