58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build Bugger.app for distribution (personal use, ad-hoc signed).
|
|
# Prerequisites: Config.xcconfig with your FEISHU_APP_ID / FEISHU_APP_SECRET.
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
|
|
PROJECT="Bugger.xcodeproj"
|
|
SCHEME="Bugger"
|
|
VERSION="1.1"
|
|
BUILD_DIR="build"
|
|
APP_NAME="Bugger.app"
|
|
|
|
echo "=== Cleaning ==="
|
|
xcodebuild -project "$PROJECT" -scheme "$SCHEME" clean 1>/dev/null
|
|
|
|
echo "=== Building Release ==="
|
|
xcodebuild -project "$PROJECT" -scheme "$SCHEME" \
|
|
-configuration Release \
|
|
-derivedDataPath "$BUILD_DIR/derived" \
|
|
build 2>&1 | grep -E "^.../|error:|BUILD|warning:.*Swift"
|
|
|
|
# Find the built .app
|
|
APP_PATH=$(find "$BUILD_DIR/derived/Build/Products/Release" -name "*.app" -type d | head -1)
|
|
if [ -z "$APP_PATH" ]; then
|
|
echo "ERROR: Could not find built .app"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Built: $APP_PATH ==="
|
|
echo ""
|
|
|
|
# Copy to build root
|
|
rm -rf "$BUILD_DIR/$APP_NAME"
|
|
cp -R "$APP_PATH" "$BUILD_DIR/$APP_NAME"
|
|
|
|
# Create DMG
|
|
echo "=== Creating DMG ==="
|
|
mkdir -p "$BUILD_DIR/dmg"
|
|
rm -rf "$BUILD_DIR/dmg/"*
|
|
cp -R "$BUILD_DIR/$APP_NAME" "$BUILD_DIR/dmg/"
|
|
ln -sf /Applications "$BUILD_DIR/dmg/Applications" 2>/dev/null || true
|
|
|
|
DMG="$BUILD_DIR/Bugger-${VERSION}.dmg"
|
|
rm -f "$DMG"
|
|
hdiutil create -volname Bugger -srcfolder "$BUILD_DIR/dmg" \
|
|
-ov -format UDZO "$DMG" 1>/dev/null
|
|
|
|
echo ""
|
|
echo "=== Done ==="
|
|
echo " App: $PWD/$BUILD_DIR/$APP_NAME"
|
|
echo " DMG: $PWD/$DMG"
|
|
echo ""
|
|
echo "To install:"
|
|
echo " cp -R $BUILD_DIR/$APP_NAME /Applications/"
|
|
echo ""
|
|
echo "On first launch, right-click the app → Open (Gatekeeper bypass)."
|