feat: 添加 App 图标

This commit is contained in:
JOJO 2026-04-24 16:58:00 +08:00
parent 269613b4bf
commit c42f65821c
5 changed files with 29 additions and 3 deletions

View File

@ -82,3 +82,19 @@ sign: release
@echo "🔏 Signing..."
codesign --force --deep --sign - $(APP_BUNDLE)
@echo "✅ Signed (ad-hoc)"
# ============================================================
# DMG (分发)
# ============================================================
DMG_NAME := $(APP_NAME)-$(shell date +%Y%m%d).dmg
DMG_TMP := $(BUILD_DIR)/dmg_temp
dmg: sign
@echo "💿 Creating DMG..."
@rm -rf $(DMG_TMP) $(DMG_NAME)
@mkdir -p $(DMG_TMP)
@cp -R $(APP_BUNDLE) $(DMG_TMP)/
@ln -s /Applications $(DMG_TMP)/Applications
@hdiutil create -volname "$(APP_NAME)" -srcfolder $(DMG_TMP) -ov -format UDZO "$(DMG_NAME)" > /dev/null 2>&1
@rm -rf $(DMG_TMP)
@echo "✅ DMG created: $(DMG_NAME)"

View File

@ -70,9 +70,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
self.recordingPanel.updateText(text)
}
speechRecognizer.onError = { [weak self] error in
speechRecognizer.onError = { error in
let nsError = error as NSError
// kAFAssistantErrorDomain code 1110 =
if nsError.domain == "kAFAssistantErrorDomain" && nsError.code == 1110 {
return
}
print("[App] Speech error: \(error)")
self?.recordingPanel.updateText("Error: \(error.localizedDescription)")
}
speechRecognizer.onStateChange = { [weak self] isActive in

Binary file not shown.

BIN
VoiceInput-20260424.dmg Normal file

Binary file not shown.

View File

@ -24,8 +24,14 @@ mkdir -p "$RESOURCES_DIR"
cp "$EXEC_SRC" "$MACOS_DIR/VoiceInput"
chmod +x "$MACOS_DIR/VoiceInput"
# 复制 Info.plist
# 复制 Info.plist 和图标
cp "$PROJECT_DIR/Sources/Resources/Info.plist" "$CONTENTS_DIR/Info.plist"
if [ -f "$PROJECT_DIR/Sources/Resources/AppIcon.icns" ]; then
cp "$PROJECT_DIR/Sources/Resources/AppIcon.icns" "$RESOURCES_DIR/AppIcon.icns"
fi
# 更新 Info.plist 引用图标
/usr/libexec/PlistBuddy -c "Add :CFBundleIconFile string AppIcon" "$CONTENTS_DIR/Info.plist" 2>/dev/null || true
# 创建 PkgInfo
echo -n 'APPL????' > "$CONTENTS_DIR/PkgInfo"