← 목록
기타 2026-06-29 3KB 읽기 4분

크라우니브라우저 3변종 구현·패키징

개요

사용자 요청 3변종을 기존 두 소스에 컴파일 플래그로 매핑해 구현·패키징. 1) 공개용 범용(기존 웹킷) 2) 크라우니전용(전용 웹킷) 3) 크라우니범용(전용 웹킷+범용목적 모듈).

현황 → 매핑

#변종번들ID소스/플래그엔진(WebKit링크)첫 탭
1공개용 범용CrownyBrowser-Public.apporg.crowny.browser.publiccrowny-browser.m +PRODUCT_PUBLIC시스템 WebKit(1)범용 시작페이지
2크라우니전용CrownyBrowser-Crowny.apporg.crowny.browser.crownycrowny-browser-standalone.m전용 한선씨/PPM(0)crowny://app/런처
3크라우니범용CrownyBrowser-Universal.apporg.crowny.browsercrowny-browser.m +PRODUCT_UNIVERSAL전용(주)+WebKit모듈(1)crowny://app/런처

무엇을 했는지

  • crowny-browser.m: CROWNY_PRODUCT_PUBLIC/(기본)UNIVERSAL 매크로 블록 추가 → 제품명(kProductName)·에디션(kEdition)·첫 탭(CB_FIRST_TAB) 분기. 창 제목·첫 탭 적용.
  • Makefile: public·universal 타깃(플래그 분리) + variants(3종 빌드) + pkg-variants. 전용=기존 standalone 재사용.
  • package-variants.sh: 3개 .app 번들 생성(번들ID·표시명·URL스킴 차등). 공개용/범용=http/https/crowny+public.html 선언(기본 브라우저 후보), 전용=crowny 전용. → /Users/ef/CrownyBrowser/variants/ + VARIANTS.md.
  • 한선씨 동반: src/변종정책.한선(엔진정책/기본탭/웹가능 4상, 검증 9/9 티). 학습 intent=브라우저_3변종_엔진스킴정책.

라이브 검증

  • 빌드 3종 회귀 0(에러/경고 0). Public/Universal 227KB, Standalone 87KB.
  • WebKit 링크: Public=1, Universal=1, Standalone=0(otool).
  • 실행 스크린샷:
  • Universal: 창 "CrownyBrowser-Universal", 첫 탭 crowny:// 네이티브 엔진(시계앱 렌더, WebKit 0 경로).
  • Public: 창 "CrownyBrowser-Public", 첫 탭 범용 웹 시작페이지(WKWebView, "WebKit Path A").
  • Crowny(standalone): 실행 OK, WebKit 0.
  • 관련 파일

    • native/crowny-browser.m (CROWNY_PRODUCT 매크로)
    • native/crowny-browser-standalone.m (전용)
    • native/Makefile (public/universal/variants/pkg-variants)
    • native/package-variants.sh
    • src/변종정책.한선
    • /Users/ef/CrownyBrowser/variants/ (3 .app + VARIANTS.md)

    잔여 이슈

    • 변종 3(크라우니범용)의 "범용목적 모듈" = 현 단계 시스템 WebKit(하이브리드). 미래=크라우니웹킷 자체엔진(L0~L5 로드맵)으로 대체 시 전용엔진만으로 일반 웹.
    • 자체포함 dist(.app 안에 crownyc/engine/fonts 동봉)는 pkg-standalone.sh 확장 필요(현재 인플레이스 절대경로 참조).
    • Universal 첫 탭이 런처 대신 stale /tmp 상태로 시계앱 표시될 수 있음(앱상태.psv 초기화 여지).