#!/bin/bash # Build script for ZIPName.app on macOS set -e APP_NAME="ZIPName" BUNDLE_DIR="dist/${APP_NAME}.app" MACOS_DIR="${BUNDLE_DIR}/Contents/MacOS" RESOURCES_DIR="${BUNDLE_DIR}/Contents/Resources" echo "=== Сборка ${APP_NAME}.app ===" rm -rf dist build mkdir -p "${MACOS_DIR}" mkdir -p "${RESOURCES_DIR}" # Копируем иконку if [ -f "ZIPName.icns" ]; then cp "ZIPName.icns" "${RESOURCES_DIR}/" fi # Копируем исходники в Resources cp app.py fixer_core.py "${RESOURCES_DIR}/" # Создаем Info.plist cat > "${BUNDLE_DIR}/Contents/Info.plist" << 'EOF' CFBundleDisplayName ZIPName CFBundleExecutable ZIPName CFBundleIconFile ZIPName.icns CFBundleIdentifier sbs.statix.zipname CFBundleInfoDictionaryVersion 6.0 CFBundleName ZIPName CFBundlePackageType APPL CFBundleShortVersionString 1.0.0 CFBundleVersion 1 LSMinimumSystemVersion 11.0 NSHighResolutionCapable EOF # Создаем исполняемый launcher cat > "${MACOS_DIR}/${APP_NAME}" << 'EOF' #!/bin/bash DIR="$(cd "$(dirname "$0")/../Resources" && pwd)" export PYTHONPATH="$DIR:$PYTHONPATH" exec /Library/Frameworks/Python.framework/Versions/3.14/bin/python3 "$DIR/app.py" "$@" EOF chmod +x "${MACOS_DIR}/${APP_NAME}" echo "Сборка завершена: ${BUNDLE_DIR}"