用途:从 packages/desktop 的 Tauri 桌面外壳生成品牌化 Qwen Code 桌面包,尽量少让用户输入。通常只需 brandId(须匹配 ^[a-z][a-z0-9-]*$)和本地 logo 路径(建议方形 1024px 以上 PNG),website 可选。不要主动索要 appName、appId、artifactName、版权或更新端点,除非用户明确要求覆盖。
主要能力:确定性派生默认值,如 appName 由 brandId 连字符分词转标题式(acme-ai → Acme AI),artifactPrefix 同理并以连字符连接(Acme-AI),appId 若 website 主机有效则反转主机标签并加 .desktop(https://acme.ai → ai.acme.desktop),否则回退 app.<brandId>.desktop。默认 updaterEndpoints 为空,品牌构建不得轮询官方更新源。
使用方式:在隔离的构建克隆中操作,保持工作仓库干净,示例: BUILD_ROOT="$PWD/brand-builds/<brandId>-<timestamp>" mkdir -p "$BUILD_ROOT" git clone --branch main --single-branch https://github.com/QwenLM/qwen-code.git "$BUILD_ROOT/qwen-code" cd "$BUILD_ROOT/qwen-code" git checkout -B brand-<brandId> origin/main 克隆或检出失败即停止并报告。随后在构建目录创建 brand.json,装依赖(根目录 npm install,包内 cd packages/desktop && npm install --workspaces=false),再运行脚本: node packages/desktop/.agents/skills/desktop-brand-builder/scripts/brand-create.mjs --shell-root /abs/path/qwen-code/packages/desktop --config /abs/path/brand.json 该脚本为配置与资源生成的唯一来源,不要手改 tauri.conf.json、图标或 bootstrap 品牌字符串。脚本会修补 productName、identifier、shortDescription、updater endpoints(为空时清空 createUpdaterArtifacts 与 pubkey),用 npx --yes @tauri-apps/cli icon <logo> 重生成图标集,并更新 bootstrap UI 标题与 logo。打包:cd packages/desktop && npm run build:runtime --workspaces=false && npx tauri build。跨平台需按目标设置 QWEN_DESKTOP_TARGET 并重新运行 build:runtime 再 tauri build --target,否则 Node 运行时架构不符会启动报 exec format error。产物位于 src-tauri/target/release/bundle/ 或 src-tauri/target/<triple>/release/bundle/。
限制:品牌构建默认未签名,签名密钥与更新私钥属于官方发布,勿复用;需自建凭据与更新源,可用 npx @tauri-apps/cli signer generate 生成密钥。脚本单次使用,已品牌化的 shell-root 会拒绝运行,失败时保留构建目录、勿重跑品牌步骤,应丢弃克隆重来。打包后需校验产物存在、计算 sha256、macOS 用 hdiutil verify,并报告路径、哈希、应用名与 ID。target: all 受当前机器或 CI 支持范围限制,未实际生成不得声称产出跨平台产物。