server: 平台抽象层+bilibili、服务端加密凭据库、角色中间件;web: 精简页面/路由、macOS 客户端(Swift)与多份方案文档;移除误入库的编译产物
This commit is contained in:
File diff suppressed because it is too large
Load Diff
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
ROOT_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/../.." && pwd)
|
||||
CORE_DIR="$ROOT_DIR/client/core"
|
||||
DIST_DIR="$ROOT_DIR/client/dist"
|
||||
RELEASE_DIR="$ROOT_DIR/client/macos/release"
|
||||
APP_DIR="$RELEASE_DIR/EveryPublish.app"
|
||||
ARCH=${MAC_ARCH:-arm64}
|
||||
SIGN_IDENTITY=${MAC_SIGN_IDENTITY:--}
|
||||
|
||||
case "$ARCH" in
|
||||
arm64) GOARCH=arm64; SWIFT_ARCH=arm64 ;;
|
||||
x64) GOARCH=amd64; SWIFT_ARCH=x86_64 ;;
|
||||
*) echo "Unsupported MAC_ARCH: $ARCH (use arm64 or x64)" >&2; exit 2 ;;
|
||||
esac
|
||||
|
||||
mkdir -p "$DIST_DIR" "$RELEASE_DIR"
|
||||
(cd "$CORE_DIR" && GOOS=darwin GOARCH="$GOARCH" CGO_ENABLED=0 go build -trimpath -ldflags '-s -w' -o "$DIST_DIR/agent-core" .)
|
||||
chmod 755 "$DIST_DIR/agent-core"
|
||||
|
||||
rm -rf "$APP_DIR"
|
||||
mkdir -p "$APP_DIR/Contents/MacOS" "$APP_DIR/Contents/Resources"
|
||||
swiftc "$SCRIPT_DIR/EveryPublishMacOSApp.swift" \
|
||||
-target "$SWIFT_ARCH-apple-macosx13.0" \
|
||||
-O \
|
||||
-parse-as-library \
|
||||
-framework SwiftUI \
|
||||
-framework AppKit \
|
||||
-framework UserNotifications \
|
||||
-o "$APP_DIR/Contents/MacOS/EveryPublish"
|
||||
cp "$DIST_DIR/agent-core" "$APP_DIR/Contents/Resources/agent-core"
|
||||
chmod 755 "$APP_DIR/Contents/MacOS/EveryPublish" "$APP_DIR/Contents/Resources/agent-core"
|
||||
|
||||
cat > "$APP_DIR/Contents/Info.plist" <<PLIST
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key><string>EveryPublish</string>
|
||||
<key>CFBundleExecutable</key><string>EveryPublish</string>
|
||||
<key>CFBundleIdentifier</key><string>com.everypublish.macos</string>
|
||||
<key>CFBundleName</key><string>EveryPublish</string>
|
||||
<key>CFBundlePackageType</key><string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key><string>0.3.0</string>
|
||||
<key>CFBundleVersion</key><string>0.3.0</string>
|
||||
<key>LSMinimumSystemVersion</key><string>13.0</string>
|
||||
<key>LSUIElement</key><false/>
|
||||
<key>NSHighResolutionCapable</key><true/>
|
||||
</dict>
|
||||
</plist>
|
||||
PLIST
|
||||
|
||||
if [ "$SIGN_IDENTITY" = "-" ]; then
|
||||
DMG_SUFFIX="-local"
|
||||
echo "Signing app ad hoc for local testing (set MAC_SIGN_IDENTITY for distribution)"
|
||||
codesign --force --deep --sign - "$APP_DIR"
|
||||
else
|
||||
DMG_SUFFIX=""
|
||||
echo "Signing app with $SIGN_IDENTITY"
|
||||
codesign --force --deep --options runtime --timestamp --sign "$SIGN_IDENTITY" "$APP_DIR"
|
||||
fi
|
||||
codesign --verify --deep --strict "$APP_DIR"
|
||||
|
||||
if command -v hdiutil >/dev/null 2>&1; then
|
||||
STAGE_DIR=$(mktemp -d "$RELEASE_DIR/dmg-stage.XXXXXX")
|
||||
trap 'rm -rf "$STAGE_DIR"' EXIT
|
||||
cp -R "$APP_DIR" "$STAGE_DIR/EveryPublish.app"
|
||||
ln -s /Applications "$STAGE_DIR/Applications"
|
||||
rm -f "$RELEASE_DIR/EveryPublish-0.3.0-$ARCH.dmg" "$RELEASE_DIR/EveryPublish-0.3.0-$ARCH-local.dmg"
|
||||
hdiutil create -volname EveryPublish -srcfolder "$STAGE_DIR" -ov -format UDZO "$RELEASE_DIR/EveryPublish-0.3.0-$ARCH$DMG_SUFFIX.dmg" >/dev/null
|
||||
fi
|
||||
|
||||
file "$APP_DIR/Contents/MacOS/EveryPublish" "$APP_DIR/Contents/Resources/agent-core"
|
||||
echo "Built $APP_DIR"
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
APP_SOURCE="$SCRIPT_DIR/release/EveryPublish.app"
|
||||
APP_DEST="${HOME}/Applications/EveryPublish.app"
|
||||
|
||||
if [ ! -d "$APP_SOURCE" ]; then
|
||||
echo "Build the app first: ./build-macos-app.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${HOME}/Applications"
|
||||
rm -rf "$APP_DEST"
|
||||
cp -R "$APP_SOURCE" "$APP_DEST"
|
||||
xattr -dr com.apple.quarantine "$APP_DEST" 2>/dev/null || true
|
||||
open "$APP_DEST"
|
||||
echo "Installed local test app at $APP_DEST"
|
||||
Reference in New Issue
Block a user