Files
OSGKeyboard/Scripts/generate-xcodeproj.sh
T
Rocky 3de665d254 feat(keyboard): ship AI mode surface with streaming search answers
Add the AI keyboard tab, Agent settings, and user-owned LLM key path for 1.7.0, including streaming answers and web-search transports without the built-in DeepSeek fallback.
2026-08-11 01:06:27 +08:00

47 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Generate OSGKeyboard.xcodeproj from project.yml and apply the Icon Composer
# patch required by XcodeGen 2.43.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
PBXPROJ="$ROOT/OSGKeyboard.xcodeproj/project.pbxproj"
# XcodeGen requires configFiles listed in project.yml to exist on disk.
# Signing.local.xcconfig is gitignored so each machine keeps its own team ID.
SIGNING_LOCAL="$ROOT/Signing.local.xcconfig"
SIGNING_EXAMPLE="$ROOT/Signing.local.xcconfig.example"
if [[ ! -f "$SIGNING_LOCAL" ]]; then
if [[ ! -f "$SIGNING_EXAMPLE" ]]; then
echo "error: missing $SIGNING_EXAMPLE" >&2
exit 1
fi
cp "$SIGNING_EXAMPLE" "$SIGNING_LOCAL"
echo "Created $SIGNING_LOCAL from Signing.local.xcconfig.example"
echo "Edit DEVELOPMENT_TEAM there if you use a personal Apple Developer account."
fi
"$ROOT/Scripts/ensure-mlx-audio-swift.sh"
xcodegen generate
"$ROOT/Scripts/patch-spm-local-package.sh"
if python3 - "$PBXPROJ" <<'PY'
import re
import sys
from pathlib import Path
text = Path(sys.argv[1]).read_text()
has_icon_type = "folder.iconcomposer.icon" in text
has_icon_path = bool(re.search(r"path = (?:OSGKeyboard/)?AppIcon\.icon;", text))
has_resources = bool(re.search(r"AppIcon\.icon in Resources", text))
sys.exit(0 if has_icon_type and has_icon_path and has_resources else 1)
PY
then
echo "AppIcon.icon configured (XcodeGen native)"
else
echo "Applying AppIcon.icon compatibility patch..."
"$ROOT/Scripts/patch-icon-composer.sh"
fi