> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 打包和发布

生成安装包，并区分构建完成与发布证据。

## 初学者演练

先决条件：完成桌面本地设置，包括 Rust 和操作系统构建工具。在构建安装程序之前停止 Tauri 开发过程；让 Web 后端保持运行。从存储库根目录运行下面的每项检查，并等待其完成，然后再运行下一项。过滤后的包命令适用于仅桌面版和所有平台签出。

简而言之：工作区是一个团队的单独用户、数据和设置。服务器是可信后端；让提供商密钥远离浏览器和电话代码。迁移是创建或更新表的版本化数据库更改。人工智能模型是回答的引擎；型号目录是服务器上可用型号 ID 和价格的列表。提供商是一种外部服务，例如人工智能、电子邮件或计费服务。权利是允许工作区使用某项功能的授权。 Webhook 是一个服务发送到另一个服务的 URL 的消息。

1. 在本地分支机构，请您的编码代理检查 `apps/desktop/src-tauri/tauri.conf.json` 并将产品标识符、应用程序名称、图标和后端 URL 设置为您拥有的值。使用公共 HTTPS 后端 URL 进行发布版本。

2. 从存储库根目录运行下面的桌面包检查。在check:release-config之前，使用桌面本地设置中的操作系统命令在此终端中设置SUPASTACK_APP_URL；公共 HTTPS 后端必须正在运行，并且应用程序标识符必须是您自己的。

3. 成功的构建不会签署、公证或发布安装程序；如果 Rust 或系统库丢失，请完成桌面本地设置。

对于自定义代码，请从提供的 `prompts/README.md` 开始，然后复制最接近的提示：对于应用程序屏幕为 `prompts/new-app-screen.md`，对于公共页面为 `prompts/new-landing-page.md`。对于服务器、数据库或提供商工作，请为您的编码代理提供本指南的任务，并要求其读取 `AGENTS.md`、`.ai/PROJECT_CONTEXT.md` 和匹配的 `.ai/` 镜像；检查此处指定的确切源文件；列出文件并在编辑前进行检查；保留工作区所有权和仅限服务器的机密；并向您展示差异。告诉它您想要的行为、输入和输出字段、允许的角色、预期的成功和错误以及测试帐户、提供程序或设备。使用样本值；永远不要粘贴真正的秘密。

[开始之前](https://supastack.dev/zh/docs/web/before-you-start.md)

[终端基础知识](https://supastack.dev/zh/docs/web/terminal-basics.md)

[桌面本地设置](https://supastack.dev/zh/docs/desktop/ship-in-5-minutes.md)

[座席提示和项目内存](https://supastack.dev/zh/docs/web/agents.md)

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build
```


## 配置产品外壳

查看 `src-tauri/tauri.conf.json`、Cargo 元数据、功能和平台标识符。通过共享资产流程替换应用程序图标，并在构建/运行时设置预期后端 URL。托管 Web 应用程序必须已部署且可访问。


## 运行本机构建门

这些包命令运行 Rust 类型检查和测试、验证发布设置并构建 Tauri 安装程序。签名和分发配置取决于目标平台和您的帐户/证书；不要将签名材料存储在源中。

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop build
```


## 验证目标操作系统上的安装程序

检查全新安装、启动、后端可访问性、身份验证、菜单/托盘、热键注册、第二实例、深层链接、离线重试和卸载。分别验证每个支持的操作系统。本地构建不能证明经过签名或公证的商业分发；不包括签名配置、更新程序源和发布自动化。

[本机验收清单](https://supastack.dev/zh/docs/desktop/run.md)

[部署共享后端](https://supastack.dev/zh/docs/web/deployment.md)


## 安装与配置

在准备安装程序之前运行 corepack pnpm --filter @supastack/desktop check:release-config 。它检查 SUPASTACK_APP_URL 是否是公共主机上的无凭据 HTTPS，并且 Tauri 标识符是否特定于产品；该检查是选择性加入的，不会阻止本地开发。

corepack pnpm --filter @supastack/desktop build 运行 tauri 构建。 tauri.conf.json 中的捆绑包目标生成主机操作系统上可用的安装程序格式 - 在您发布的每个操作系统上构建。文物落在 apps/desktop/src-tauri/target/release/bundle/. 下

产品名称、版本和标识符位于 tauri.conf.json 中 — 在发布版本之前将版本升级到那里。使用 corepack pnpm --filter @supastack/desktop icons 重新生成图标，它重写了 icon-source.png 中的 src-tauri/icons。

```
corepack pnpm --filter @supastack/desktop check:release-config
corepack pnpm --filter @supastack/desktop icons
corepack pnpm --filter @supastack/desktop build
# artifacts: apps/desktop/src-tauri/target/release/bundle/
```


## 实现流程

未签名安装包可以在本机安装，但会触发操作系统信任警告。代码签名和 Apple 公证需要在自己的发布配置中完成；证书应存放在专用密钥库，不能提交到仓库。

在发布构建中写入生产环境 SUPASTACK_APP_URL，使安装后的外壳指向已部署 Web 应用，而不是 localhost。


## 验证与排障

在每个目标操作系统安装产物，并记录构建版本、系统和应用地址。验证应用启动、加载目标部署、托盘和快捷键工作，以及登录状态保留；仅完成 tauri build 不能作为发布验收。


如果你想继续完成设置，可以阅读《[代码签名](https://supastack.dev/zh/docs/desktop/signing.md)》。


## 下一篇

[代码签名](https://supastack.dev/zh/docs/desktop/signing.md)
