Files
PowerBar/build_and_package.sh
leo12025 21bb3131a0 chore: 清理构建脚本中的用户数据和缓存
删除xcuserdata相关文件并更新构建脚本,增加清理Xcode缓存和用户数据的步骤
2025-12-27 19:52:04 +08:00

84 lines
2.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# PowerBar 打包脚本
# 用于构建应用程序并创建DMG安装包
# 设置变量
PROJECT_NAME="PowerBar"
SCHEME="PowerBar"
CONFIGURATION="Release"
VERSION="1.0.0"
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"