diff --git a/build_dmg.sh b/build_dmg.sh new file mode 100755 index 0000000..42fcecd --- /dev/null +++ b/build_dmg.sh @@ -0,0 +1,82 @@ +#!/bin/bash +set -e +cd "$(dirname "$0")" + +APP_NAME="MiniPlayer" +BUNDLE_ID="com.opencomputing.miniplayer" +VERSION="1.0.0" + +echo "=== 1. Release Build ===" +swift build -c release + +echo "=== 2. Create .app bundle ===" +rm -rf build/${APP_NAME}.app +mkdir -p build/${APP_NAME}.app/Contents/{MacOS,Resources} + +# Binary +cp .build/release/${APP_NAME} build/${APP_NAME}.app/Contents/MacOS/ + +# Localization +cp -r Sources/Resources/zh-Hans.lproj build/${APP_NAME}.app/Contents/Resources/ +cp -r Sources/Resources/en.lproj build/${APP_NAME}.app/Contents/Resources/ + +# Icon (.icns) +mkdir -p build/${APP_NAME}.iconset +cp Icons_macOS/${APP_NAME}.appiconset/icon_16.png build/${APP_NAME}.iconset/icon_16x16.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_16@2x.png build/${APP_NAME}.iconset/icon_16x16@2x.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_32.png build/${APP_NAME}.iconset/icon_32x32.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_32@2x.png build/${APP_NAME}.iconset/icon_32x32@2x.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_128.png build/${APP_NAME}.iconset/icon_128x128.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_128@2x.png build/${APP_NAME}.iconset/icon_128x128@2x.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_256.png build/${APP_NAME}.iconset/icon_256x256.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_256@2x.png build/${APP_NAME}.iconset/icon_256x256@2x.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_512.png build/${APP_NAME}.iconset/icon_512x512.png +cp Icons_macOS/${APP_NAME}.appiconset/icon_512@2x.png build/${APP_NAME}.iconset/icon_512x512@2x.png + +iconutil -c icns build/${APP_NAME}.iconset -o build/${APP_NAME}.app/Contents/Resources/${APP_NAME}.icns +rm -rf build/${APP_NAME}.iconset + +# Info.plist +cat > build/${APP_NAME}.app/Contents/Info.plist << PLIST + + + + + CFBundleName${APP_NAME} + CFBundleDisplayName${APP_NAME} + CFBundleIdentifier${BUNDLE_ID} + CFBundleVersion${VERSION} + CFBundleShortVersionString${VERSION} + CFBundleExecutable${APP_NAME} + CFBundlePackageTypeAPPL + CFBundleIconFile${APP_NAME} + CFBundleDevelopmentRegionzh-Hans + CFBundleLocalizations + + zh-Hans + en + + LSMinimumSystemVersion13.0 + NSHighResolutionCapable + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + mp4movmkv + avim4vmp3 + m4awav + + CFBundleTypeRoleViewer + + + + +PLIST + +echo "=== 3. Create DMG ===" +rm -f build/${APP_NAME}.dmg +hdiutil create -volname "${APP_NAME}" -srcfolder build/${APP_NAME}.app -ov -format UDZO build/${APP_NAME}.dmg + +echo "=== Done! ===" +ls -lh build/${APP_NAME}.dmg