MEDIABROWSER 개명·업데이트 채널 전환·아이콘 tofu 근본 수정 (BACKLOG 13차) — ①개명: installer.iss AppName/출력 MediaBrowser-Setup-*(AppId·exe·데이터 경로 유지로 업그레이드 호환), 워크플로 산출물명(mediabrowser-*.tar.gz, MediaBrowser-<ver>-arm64.apk), 창 타이틀·모바일 표시명·obtainium.json·README. ②UpdateChecker: apiBase 주입(기본=자체 Forgejo /api/v1, GitHub 는 apiBase 로 호환), osx 자산 tar.gz 허용(기존 dmg 만 → mac 영원히 자산 없음 결함 수정), AppConfig 기본 UpdateRepo=Video-Downloader/releases+UpdateApiBase — 테스트 4건. ③아이콘 tofu(사용자 보고 "절대 안고쳐지네") 근본 원인: Shared.xaml 암시적 TextBlock 스타일의 FontFamily=UiFont 강제가 버튼 ContentPresenter 자동 TextBlock 의 IconFont 상속을 덮어 모든 PUA 글리프가 notdef — 폰트 설치/글리프 존재/HW·SW 렌더/RTB/DPI/런타임 8·10/자체포함·공유 전부 배제 후 실창 픽셀 비교로 격리, 콘텐츠 TextBlock 의 실폰트가 Pretendard 체인임을 테스트로 실증. 수정: 암시 스타일 FontFamily 제거(창 루트 상속으로 통일, PairingWindow/PlayerWindow 는 SetResourceReference), PUA+텍스트 혼합 콘텐츠 7곳+코드 1곳 정리, 순수 글리프 2곳 IconFont 명시. 회귀 방어: IconGlyphXamlTests(정적 스캔)·IconContentFontTests(실창 폰트 단정)·IconGlyphRenderTests(픽셀 비교) — 462/462 GREEN, 수정 전후 실창 캡처로 글리프 렌더 확인

This commit is contained in:
Yun Chan 2026-08-18 07:13:18 +09:00
parent c8b061959b
commit 02995f4153
24 changed files with 451 additions and 64 deletions

View file

@ -74,7 +74,7 @@ jobs:
run: ./build/publish.ps1 -Config Release -Version $env:APP_VERSION
- name: 릴리스 업로드
env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" }
run: ./build/ci/upload-release-asset.ps1 -Tag $env:RELTAG -Files out/VideoDownloader-Setup-x64.exe, out/VideoDownloader-Setup-arm64.exe
run: ./build/ci/upload-release-asset.ps1 -Tag $env:RELTAG -Files out/MediaBrowser-Setup-x64.exe, out/MediaBrowser-Setup-arm64.exe
# ── Android APK (키스토어 시크릿 없으면 디버그 서명 APK) ──
android:
@ -126,10 +126,10 @@ jobs:
$apk = Get-ChildItem out/android/*-Signed.apk | Select-Object -First 1
if (-not $apk) { $apk = Get-ChildItem out/android/*.apk | Select-Object -First 1 }
if (-not $apk) { throw "APK 산출물 없음" }
Copy-Item $apk.FullName "out/VideoDownloader-$env:APP_VERSION-arm64.apk"
Copy-Item $apk.FullName "out/MediaBrowser-$env:APP_VERSION-arm64.apk"
- name: 릴리스 업로드
env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" }
run: ./build/ci/upload-release-asset.ps1 -Tag $env:RELTAG -Files "out/VideoDownloader-$env:APP_VERSION-arm64.apk"
run: ./build/ci/upload-release-asset.ps1 -Tag $env:RELTAG -Files "out/MediaBrowser-$env:APP_VERSION-arm64.apk"
# ── Linux 셸 (tar.gz self-contained — Cli + Avalonia, x64 네이티브 + arm64 교차) ──
linux:
@ -163,11 +163,11 @@ jobs:
for rid in linux-x64 linux-arm64; do
dotnet publish VideoDownloader.Cli -c Release -r "$rid" --self-contained -o "out/cli-$rid"
dotnet publish VideoDownloader.Avalonia -c Release -r "$rid" --self-contained -o "out/avalonia-$rid"
tar -C out -czf "out/videodownloader-$rid.tar.gz" "cli-$rid" "avalonia-$rid"
tar -C out -czf "out/mediabrowser-$rid.tar.gz" "cli-$rid" "avalonia-$rid"
done
- name: 릴리스 업로드
env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" }
run: ./build/ci/upload-release-asset.sh "$RELTAG" out/videodownloader-linux-x64.tar.gz out/videodownloader-linux-arm64.tar.gz
run: ./build/ci/upload-release-asset.sh "$RELTAG" out/mediabrowser-linux-x64.tar.gz out/mediabrowser-linux-arm64.tar.gz
# ── macOS 셸 (tar.gz — arm64 네이티브 + x64 교차. 서명·공증은 D4, Apple Developer Program 후) ──
macos:
@ -201,8 +201,8 @@ jobs:
for rid in osx-arm64 osx-x64; do
dotnet publish VideoDownloader.Cli -c Release -r "$rid" --self-contained -o "out/cli-$rid"
dotnet publish VideoDownloader.Avalonia -c Release -r "$rid" --self-contained -o "out/avalonia-$rid"
tar -C out -czf "out/videodownloader-$rid.tar.gz" "cli-$rid" "avalonia-$rid"
tar -C out -czf "out/mediabrowser-$rid.tar.gz" "cli-$rid" "avalonia-$rid"
done
- name: 릴리스 업로드
env: { RELEASE_TOKEN: "${{ secrets.RELEASE_TOKEN }}" }
run: ./build/ci/upload-release-asset.sh "$RELTAG" out/videodownloader-osx-arm64.tar.gz out/videodownloader-osx-x64.tar.gz
run: ./build/ci/upload-release-asset.sh "$RELTAG" out/mediabrowser-osx-arm64.tar.gz out/mediabrowser-osx-x64.tar.gz