← 목록
브라우저 2026-07-11 4KB 읽기 6분

CrownyBrowser variants + 패키징 스크립트 CrownyAI 리브랜딩

개요

2026-07-11 브랜드명 CrownyAI 통일 작업의 잔여분. native/crowny-browser.m CB_PRODUCT_NAME 매크로·Info.plist(make-app.sh)·랜딩은 이미 완료된 상태였고, 이번 작업은 variants/ 3변종 패키징 경로(Makefile→make variants/pkg-variants, package-variants.sh, 브라우저-패키징.sh)와 crowny-browser-standalone.m의 표시 문자열을 CrownyAI 계열로 정리했다.

  • bundle id·디렉토리·실행파일명·.app 파일명은 전부 유지(org.crowny.browser., CrownyBrowser-Public/Crowny/Universal).
  • 사용자 노출 표시명(CFBundleName/CFBundleDisplayName, zip 안내문, 스크립트 출력)만 교체: Universal="CrownyAI", Public="CrownyAI Public", Crowny="CrownyAI Crowny".
  • kCrownyUA("CrownyBrowser/0.2 (crowny-view)")는 서버 UA 판별용 상수라 예외 유지 대상이었으나, 실측 결과 코드 어디서도 참조되지 않는 dead code로 -dead_strip에 의해 바이너리에서 이미 제거됨(문제 없음).

무엇을 했는지

  1. native/crowny-browser.m — CB_PRODUCT_NAME 매크로 중 UNIVERSAL 분기만 "CrownyAI Universal""CrownyAI"(접미 제거)로 수정. Public/Crowny 분기는 이미 "CrownyAI Public"/"CrownyAI Crowny"로 완료되어 있었음.
  2. native/crowny-browser-standalone.m — 사용자 노출 문자열 3곳(_window.title 포맷, setTitle:, App 메뉴 아이템 타이틀)의 "CrownyBrowser Standalone""CrownyAI Crowny"로 교체(이 소스가 대응하는 에디션=크라우니전용). 클래스명(CrownyStandaloneDelegate 등)·경로·kSAAppRenderSh 등 코드 심볼은 불변.
  3. native/package-variants.shmake_bundle() 호출 4개 인자(disp)를 Korean 라벨("크라우니브라우저 공개용/전용/범용")에서 CrownyAI 계열("CrownyAI Public"/"CrownyAI Crowny"/"CrownyAI")로 교체. Info.plist 템플릿에서 CFBundleName도 기존 $1(실행파일명)이 아닌 $disp(브랜드 표시명)를 쓰도록 수정 — CFBundleExecutable/.app 파일명/bundle id는 그대로 $1/$3 유지.
  4. 브라우저-패키징.sh — 에디션별 DISP 매핑(case문)을 추가해 설치안내.md 헤딩을 # 크라우니브라우저 $ED $VER# $DISP $VER(CrownyAI Public/Crowny/CrownyAI)로 교체. 동봉물(집사/파인더) 로직·zip 디렉토리명/파일명·본문의 "공개용(Public)/전용(Crowny)/범용(Universal)" 에디션 설명은 os-site 다운로드 페이지 관례와 일치시켜 그대로 유지.
  5. make -C native variants 재빌드(경고만, 에러 0) → bash native/package-variants.sh 재패키징(3 .app) → ./브라우저-패키징.sh v2.1 재실행(3 zip 재생성, /Users/ef/CrownyOS/os-site/downloads/crownybrowser-{public,crowny,universal}-v2.1.zip).

검증

  • PlistBuddy -c "Print :CFBundleExecutable/:CFBundleIdentifier/:CFBundleName/:CFBundleDisplayName" 3변종 전부 확인 — 실행파일명/bundle id 불변, Name/DisplayName만 CrownyAI 계열로 갱신됨.
  • strings 바이너리 스캔: About CrownyAI/Quit CrownyAI 정상, About CrownyBrowser/Quit CrownyBrowser/— CrownyBrowser 패턴 0건. 남은 bare CrownyBrowser 문자열은 ~/Library/Application Support/CrownyBrowser/data 경로와 NSError 도메인 식별자뿐(코드/경로 식별자, 표시명 아님 — 범위 외).
  • zip 3종 압축 해제 후 설치안내.md 헤딩 확인: # CrownyAI Public v2.1 / # CrownyAI Crowny v2.1 / # CrownyAI v2.1.

관련 파일

  • /Users/ef/CrownyBrowser/native/crowny-browser.m (CB_PRODUCT_NAME 매크로, line ~104)
  • /Users/ef/CrownyBrowser/native/crowny-browser-standalone.m (표시 문자열 3곳)
  • /Users/ef/CrownyBrowser/native/package-variants.sh (make_bundle disp 인자 + Info.plist CFBundleName)
  • /Users/ef/CrownyBrowser/브라우저-패키징.sh (DISP case문 + 설치안내.md 헤딩)
  • /Users/ef/CrownyBrowser/native/Makefile (변경 없음, 확인만)
  • /Users/ef/CrownyBrowser/native/make-app.sh (변경 없음, 기 완료 확인만)
  • /Users/ef/CrownyBrowser/variants/.app (재생성 산출물)
  • /Users/ef/CrownyOS/os-site/downloads/crownybrowser-{public,crowny,universal}-v2.1.zip (재생성 산출물)

잔여 이슈

  • 없음. GUI 실행/배포(open, 기본 브라우저 등록)는 지시대로 수행하지 않음.
  • 크라우니코드: 새 로직 생성 없음(순수 텍스트 브랜드 치환) — lookup/learn 대상 아님, HIT 0건/MISS 0건/learn 0건.