#!/bin/bash # PowerBar 打包脚本 # 用于构建应用程序并创建DMG安装包 # 设置变量 PROJECT_NAME="PowerBar" SCHEME="PowerBar" CONFIGURATION="Release" VERSION="1.0.1" echo "=== PowerBar 打包脚本 v$VERSION ===" # 1. 清理之前的构建产物和缓存 echo "\n1. 清理之前的构建产物和缓存..." rm -rf "$PROJECT_NAME.app" rm -rf "$PROJECT_NAME-$VERSION.dmg" rm -rf "build" rm -rf "~/Library/Developer/Xcode/DerivedData/$PROJECT_NAME-*" rm -rf "$PROJECT_NAME.xcodeproj/xcuserdata" rm -rf "$PROJECT_NAME.xcodeproj/project.xcworkspace/xcuserdata" # 2. 执行Xcode清理 echo "\n2. 执行Xcode清理..." xcodebuild -scheme "$SCHEME" -configuration "$CONFIGURATION" clean # 3. 直接构建应用程序 echo "\n3. 构建应用程序..." xcodebuild -scheme "$SCHEME" -configuration "$CONFIGURATION" -derivedDataPath "build" build if [ $? -ne 0 ]; then echo "构建失败!" exit 1 fi # 4. 复制应用程序到当前目录 echo "\n4. 复制应用程序到当前目录..." cp -R "build/Build/Products/$CONFIGURATION/$PROJECT_NAME.app" . # 5. 验证应用程序 echo "\n5. 验证应用程序..." if [ -d "$PROJECT_NAME.app" ]; then echo "应用程序构建成功:$PROJECT_NAME.app" else echo "应用程序构建失败!" exit 1 fi # 6. 创建DMG安装包 echo "\n6. 创建DMG安装包..." # 创建临时目录用于构建DMG temp_dmg_dir="temp_dmg" rm -rf "$temp_dmg_dir" mkdir -p "$temp_dmg_dir" # 复制应用程序到临时目录 cp -R "$PROJECT_NAME.app" "$temp_dmg_dir/" # 创建Applications快捷方式 ln -s /Applications "$temp_dmg_dir/Applications" # 创建DMG hdiutil create -volname "$PROJECT_NAME-$VERSION" -srcfolder "$temp_dmg_dir" -ov -format UDZO "$PROJECT_NAME-$VERSION.dmg" # 7. 清理临时文件 echo "\n7. 清理临时文件..." rm -rf "$temp_dmg_dir" rm -rf "build" # 8. 验证DMG echo "\n8. 验证DMG..." if [ -f "$PROJECT_NAME-$VERSION.dmg" ]; then echo "DMG创建成功:$PROJECT_NAME-$VERSION.dmg" echo "文件大小:$(du -h "$PROJECT_NAME-$VERSION.dmg" | cut -f1)" else echo "DMG创建失败!" exit 1 fi echo "\n=== 打包完成! ===" echo "应用程序:$PROJECT_NAME.app" echo "安装包:$PROJECT_NAME-$VERSION.dmg"