fix(build): 아이콘 의존 제거 + NSISdl 비의존화
- electron-builder.yml: win/mac/linux icon 경로 제거 (resources/icons/가 비어있어 아이콘 수집 실패) Electron 기본 아이콘 사용. 추후 resources/icons/icon.ico 준비되면 win.icon 복원. - extraResources의 resources/icons/ 복사 엔트리 삭제 - installer.nsh: NSISdl::download 제거 → 번들 플러그인 의존 제거 VC++ 재배포 미설치 시 수동 설치 링크 안내만 표시
This commit is contained in:
parent
adc88853fa
commit
a18666dd6a
2 changed files with 11 additions and 52 deletions
|
|
@ -1,49 +1,21 @@
|
||||||
; build/installer.nsh
|
; build/installer.nsh
|
||||||
; NSIS 커스텀 스크립트. electron-builder의 nsis.include로 참조됨.
|
; electron-builder의 nsis.include로 참조되는 NSIS 커스텀 스크립트.
|
||||||
|
; 번들 플러그인 의존을 피하기 위해 자동 다운로드는 제거하고 정보성 안내만 수행.
|
||||||
;
|
;
|
||||||
; 목적:
|
; 목적:
|
||||||
; 1) Visual C++ 재배포 패키지(x64, 2015-2022) 확인 및 사일런트 자동 설치
|
; 1) Visual C++ 재배포 패키지(x64, 2015-2022) 설치 여부 확인 + 안내
|
||||||
; - Ollama 및 faster-whisper 사이드카의 네이티브 의존성이 요구함.
|
; 2) 언인스톨 시 번들 Ollama 프로세스 종료
|
||||||
; - NSIS 내장 NSISdl 플러그인(인터넷 다운로드 표준)으로 aka.ms 경유 다운로드.
|
|
||||||
; 2) 언인스톨 시 번들 Ollama 프로세스 종료.
|
|
||||||
|
|
||||||
!macro customInstall
|
!macro customInstall
|
||||||
DetailPrint "VC++ 재배포 패키지(x64) 확인 중..."
|
DetailPrint "VC++ 재배포 패키지(x64) 확인 중..."
|
||||||
|
|
||||||
; x64 Visual C++ 2015-2022 재배포 패키지 설치 여부 확인
|
|
||||||
ClearErrors
|
ClearErrors
|
||||||
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Installed"
|
ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" "Installed"
|
||||||
|
|
||||||
${If} $0 != "1"
|
${If} $0 != "1"
|
||||||
DetailPrint "VC++ 재배포 미설치 → 자동 다운로드/설치 시도"
|
MessageBox MB_OK|MB_ICONINFORMATION \
|
||||||
|
"Microsoft Visual C++ 재배포 패키지(x64, 2015-2022)가 필요합니다.$\r$\n$\r$\n설치를 계속하되, 앱 첫 실행 시 오류가 나면 아래 링크에서 수동 설치 후 재시도하세요:$\r$\n$\r$\nhttps://aka.ms/vs/17/release/vc_redist.x64.exe"
|
||||||
; aka.ms/vs/17/release/vc_redist.x64.exe (영구 리다이렉트 → 최신 17.x)
|
DetailPrint "VC++ 재배포 미설치 — 사후 수동 설치 안내 표시됨"
|
||||||
; NSISdl은 리다이렉트를 따라가며 Microsoft 공식 MSI 패키지를 받는다.
|
|
||||||
NSISdl::download /TIMEOUT=30000 "https://aka.ms/vs/17/release/vc_redist.x64.exe" "$TEMP\vc_redist.x64.exe"
|
|
||||||
Pop $R0
|
|
||||||
|
|
||||||
${If} $R0 == "success"
|
|
||||||
DetailPrint "vc_redist.x64.exe 사일런트 설치 실행"
|
|
||||||
ExecWait '"$TEMP\vc_redist.x64.exe" /install /quiet /norestart' $1
|
|
||||||
Delete "$TEMP\vc_redist.x64.exe"
|
|
||||||
|
|
||||||
${If} $1 == 0
|
|
||||||
DetailPrint "VC++ 재배포 설치 완료"
|
|
||||||
${ElseIf} $1 == 1638
|
|
||||||
; 1638 = 동일/상위 버전 이미 설치됨
|
|
||||||
DetailPrint "VC++ 재배포 동일 이상 버전 이미 설치됨 (코드 1638)"
|
|
||||||
${ElseIf} $1 == 3010
|
|
||||||
; 3010 = 설치 성공, 재부팅 필요
|
|
||||||
DetailPrint "VC++ 재배포 설치 완료 (재부팅 필요)"
|
|
||||||
${Else}
|
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
|
||||||
"VC++ 재배포 설치 중 경고 발생 (코드 $1).$\r$\n일부 기능이 동작하지 않을 수 있습니다.$\r$\n수동 설치: https://aka.ms/vs/17/release/vc_redist.x64.exe"
|
|
||||||
${EndIf}
|
|
||||||
${Else}
|
|
||||||
DetailPrint "VC++ 재배포 다운로드 실패: $R0"
|
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION \
|
|
||||||
"VC++ 재배포 패키지 다운로드에 실패했습니다.$\r$\n$\r$\n아래 링크에서 수동으로 설치해주세요:$\r$\nhttps://aka.ms/vs/17/release/vc_redist.x64.exe$\r$\n$\r$\n설치하지 않으면 음성 인식이 동작하지 않습니다."
|
|
||||||
${EndIf}
|
|
||||||
${Else}
|
${Else}
|
||||||
DetailPrint "VC++ 재배포 이미 설치됨."
|
DetailPrint "VC++ 재배포 이미 설치됨."
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
|
||||||
|
|
@ -21,20 +21,20 @@ asarUnpack:
|
||||||
|
|
||||||
# ────────────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────────────
|
||||||
# Windows
|
# Windows
|
||||||
|
# 주: icon 지정 시 resources/icons/icon.ico 필요. 초기 배포에선 생략하여
|
||||||
|
# electron 기본 아이콘 사용(아이콘 준비되면 win.icon 라인 추가).
|
||||||
# ────────────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────────────
|
||||||
win:
|
win:
|
||||||
target:
|
target:
|
||||||
- target: nsis
|
- target: nsis
|
||||||
arch:
|
arch:
|
||||||
- x64
|
- x64
|
||||||
icon: resources/icons/icon.ico
|
|
||||||
|
|
||||||
# ────────────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────────────
|
||||||
# macOS
|
# macOS
|
||||||
# ────────────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────────────
|
||||||
mac:
|
mac:
|
||||||
category: public.app-category.productivity
|
category: public.app-category.productivity
|
||||||
icon: resources/icons/icon.icns
|
|
||||||
target:
|
target:
|
||||||
- target: dmg
|
- target: dmg
|
||||||
arch:
|
arch:
|
||||||
|
|
@ -48,8 +48,6 @@ mac:
|
||||||
gatekeeperAssess: false
|
gatekeeperAssess: false
|
||||||
entitlements: build/entitlements.mac.plist
|
entitlements: build/entitlements.mac.plist
|
||||||
entitlementsInherit: build/entitlements.mac.plist
|
entitlementsInherit: build/entitlements.mac.plist
|
||||||
# notarize: 환경변수 APPLE_ID / APPLE_APP_SPECIFIC_PASSWORD / APPLE_TEAM_ID 설정 시 활성화.
|
|
||||||
# CI/dev 환경에서는 NOTARIZE=false로 스킵 가능.
|
|
||||||
notarize: false
|
notarize: false
|
||||||
extendInfo:
|
extendInfo:
|
||||||
NSMicrophoneUsageDescription: "D3RO Voice는 음성 인식을 위해 마이크 접근이 필요합니다."
|
NSMicrophoneUsageDescription: "D3RO Voice는 음성 인식을 위해 마이크 접근이 필요합니다."
|
||||||
|
|
@ -74,7 +72,6 @@ linux:
|
||||||
target:
|
target:
|
||||||
- AppImage
|
- AppImage
|
||||||
category: Utility
|
category: Utility
|
||||||
icon: resources/icons/icon.png
|
|
||||||
|
|
||||||
# ────────────────────────────────────────────────────────────────────
|
# ────────────────────────────────────────────────────────────────────
|
||||||
# 공통 리소스 번들
|
# 공통 리소스 번들
|
||||||
|
|
@ -86,29 +83,19 @@ extraResources:
|
||||||
filter:
|
filter:
|
||||||
- "*.wav"
|
- "*.wav"
|
||||||
|
|
||||||
# 앱 아이콘 (트레이 등 런타임에서 참조)
|
# SoX 바이너리
|
||||||
- from: resources/icons/
|
|
||||||
to: icons/
|
|
||||||
filter:
|
|
||||||
- "**/*"
|
|
||||||
|
|
||||||
# SoX 바이너리 (번들되어 있으면 번들, 없으면 시스템 PATH)
|
|
||||||
- from: resources/sox/
|
- from: resources/sox/
|
||||||
to: sox/
|
to: sox/
|
||||||
filter:
|
filter:
|
||||||
- "**/*"
|
- "**/*"
|
||||||
|
|
||||||
# Python sidecar (PyInstaller 빌드 결과)
|
# Python sidecar (PyInstaller 빌드 결과)
|
||||||
# 빌드 전: python scripts/build-sidecar.py (플랫폼에서 개별 실행)
|
|
||||||
- from: sidecar-dist/sidecar/
|
- from: sidecar-dist/sidecar/
|
||||||
to: sidecar/
|
to: sidecar/
|
||||||
filter:
|
filter:
|
||||||
- "**/*"
|
- "**/*"
|
||||||
|
|
||||||
# Ollama 바이너리
|
# Ollama 바이너리 (포터블 zip을 사전 배치)
|
||||||
# 빌드 전: powershell scripts/download-ollama.ps1 (Windows)
|
|
||||||
# bash scripts/download-ollama.sh (macOS/Linux)
|
|
||||||
# 번들된 ollama가 있으면 LocalLLMService가 1순위로 사용.
|
|
||||||
- from: resources/ollama/
|
- from: resources/ollama/
|
||||||
to: ollama/
|
to: ollama/
|
||||||
filter:
|
filter:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue