84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 KiB
Bash
Executable File
#!/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"
|