#!/bin/zsh set -e PROJECT_DIR="/Users/alig/Develop/SonioxVoice" BUILD_DIR="$PROJECT_DIR/build" APP_NAME="Soniox Voice" APP_BUNDLE="$BUILD_DIR/$APP_NAME.app" DMG_NAME="SonioxVoice-v1.0.0.dmg" echo "🔨 Building $APP_NAME..." mkdir -p "$BUILD_DIR" rm -rf "$APP_BUNDLE" # 1. Compile Swift sources swiftc -O -target arm64-apple-macosx13.0 \ -framework Cocoa -framework AVFoundation -framework Carbon \ "$PROJECT_DIR"/src/*.swift \ -o "$BUILD_DIR/SonioxVoice" # 2. Assemble .app bundle mkdir -p "$APP_BUNDLE/Contents/MacOS" mkdir -p "$APP_BUNDLE/Contents/Resources" cp "$BUILD_DIR/SonioxVoice" "$APP_BUNDLE/Contents/MacOS/SonioxVoice" cp "$PROJECT_DIR/Info.plist" "$APP_BUNDLE/Contents/Info.plist" cp "$PROJECT_DIR/resources/AppIcon.icns" "$APP_BUNDLE/Contents/Resources/AppIcon.icns" # 3. Ad-hoc Codesign codesign --force --deep --sign - "$APP_BUNDLE" echo "✅ App bundle assembled at $APP_BUNDLE" # 4. Create DMG Installer echo "📦 Creating DMG Installer..." DMG_STAGING="$BUILD_DIR/dmg_staging" rm -rf "$DMG_STAGING" "$BUILD_DIR/$DMG_NAME" mkdir -p "$DMG_STAGING" cp -R "$APP_BUNDLE" "$DMG_STAGING/" ln -s /Applications "$DMG_STAGING/Applications" hdiutil create -volname "Soniox Voice" -srcfolder "$DMG_STAGING" -ov -format UDZO "$BUILD_DIR/$DMG_NAME" echo "✅ DMG created at $BUILD_DIR/$DMG_NAME" # 5. Create ZIP Archive cd "$BUILD_DIR" zip -r -y "SonioxVoice-v1.0.0.zip" "$APP_NAME.app" # 6. Install to /Applications on Mac echo "🚀 Installing to /Applications/$APP_NAME.app..." rm -rf "/Applications/$APP_NAME.app" cp -R "$APP_BUNDLE" "/Applications/$APP_NAME.app" echo "🎉 All Done Successfully!" ls -lh "$BUILD_DIR"