跳过主内容

Convert Your Lovable App to iOS and Android with Capacitor

Step-by-step guide to export your Lovable project, wrap it with Capacitor, build signed iOS and Android apps in the cloud with Capgo Builder, and ship fixes over the air.

"","","","","","","","","",""

"","","","","","","","","",""

"","","","","","","","","",""

Convert Your Lovable App to iOS and Android with Capacitor

"","","","","","","","","",""

"","","","","","","","","","" "","","","","","","","","",""

"","","","","","","","","","" Capacitor使用云端在iOS和Android上构建签名的二进制文件 Capgo Builder (不需要Mac),添加一个真正的本机功能,并通过 Capgo Live Updates.

我们使用 Cursor ,它的AI可以自动执行大部分终端命令,如果您不想手动输入。

所需时间: 大约1-2小时第一次,主要是账户设置和等待云端构建。

最后,您将拥有:

  • 一个从云端构建的本机iOS和Android应用程序——不需要在主路径上使用Xcode或Android Studio
  • 在真实设备上运行的应用程序(TestFlight、直接安装或Play内部测试)
  • 仅本机应用程序才能提供的工作摄像头功能
  • 配置了实时更新,UI和CSS修复可以不经过商店审核直接发布

前提条件

需求 详细信息
一台电脑 Mac、Windows或Linux —— 云构建可以从任何操作系统中进行
一个code编辑器 光标 (推荐)或VSCode
Node.js 24 LTS (最新版 — 从 nodejs.org)
Git 从 GitHub
Capgo 账户 免费注册 — 云构建和实时更新

费用(仅发布公共):

项目 费用
Apple Developer Program $99/年
Google Play Console $25 one-time
Cursor Pro $20/month (optional but recommended for AI command execution)
Capgo 免费层可用; 付费计划适用于生产规模

仅限本地模拟器:

工具 为什么
Xcode (~15 GB, macOS only) 在您的 Mac 上使用 iOS 模拟器
Android Studio (~1 GB + SDKs) 安卓模拟器

您可以跳过这两步。该教程的主要路径是在云端构建并在真实设备上安装,而无需模拟器。

关于可爱和框架的快速说明

在接触code之前,需要了解 可爱生成的网页应用类型会影响移动设备包装.

很长时间以来,可爱的默认设置是 React + Vite单页面应用(SPA)截至2026年5月,新建的可爱应用可能使用 TanStack Start,带有服务器端渲染(SSR) SSR对于Web应用来说很棒,但Capacitor会包装一个 静态构建 —一个包含HTML、CSS和JavaScript的文件夹 index.html 在设备上运行的应用程序的根部 —— 即在应用程序内部运行的应用程序。

SSR 应用程序需要服务器在每个请求时渲染页面。手机内部没有服务器,所以对于 Capacitor 你想要 静态、客户端渲染的输出.

要做什么:

  • 从头开始: 要求 Lovable 为你提供一个 单页应用程序 (SPA) 或跳过 SSR 以获得静态 dist/ 文件夹。
  • 已经在 TanStack Start (SSR) 上: 配置它以预渲染或输出静态 SPA。唯一的硬性要求是包含静态构建文件夹的 index.html.
  • 遗留 Next.js Lovable 项目: 使用 静态导出 — 输出到 out/ 而不是 dist/.

无论您使用哪个框架,都将 Capacitor 的 webDir 在该文件夹中。对于 Vite SPA,文件夹是 dist.

步骤 1 — 将您的可爱的应用程序导出到 GitHub

可爱会将您的 code 在其编辑器中保留,直到您连接 GitHub。

  1. 在浏览器中打开您的 Lovable 项目
  2. 点击 升级 (右上角) 如果需要,请打开 Git 在左侧菜单
  3. 选择 GitHub,授权Lovable,并链接您的帐户
  4. Lovable会自动创建一个仓库并推送您的应用

Lovable.dev GitHub 连接

Lovable.dev GitHub 授权

Lovable.dev 仓库设置

Lovable.dev 项目导出

成功: 访问 github.com/YOUR-USERNAME/your-app 显示您的应用程序的 code。

步骤 2 — 设置游标并克隆您的项目

在本地与您的 code 进行工作之前,您需要一个 code 编辑器。我们推荐 Cursor,一个可以为您运行终端命令的 AI 强化编辑器。

下载并安装 Cursor

  1. 访问 cursor.sh 并下载适用于您的操作系统的版本
  2. 按照安装向导安装 Cursor
  3. 安装完成后打开 Cursor

启动 Cursor

为 AI 开发配置游标

为了获得最佳体验,请在开始之前配置游标:

  1. 购买游标计划 — 虽然游标提供免费层级,但 Pro 计划($20/月)为您提供无限的 AI 完成、访问 Claude 和 GPT-4、以及命令执行
  2. 打开游标设置 通过按 Command+, (Mac) 或 Ctrl+, (Windows)

游标设置

  1. 启用 AI 模型 — 确保 AI 功能已启用:

允许模型

  1. 选择您的偏好模型 — 选择 Claude 或 GPT-4 以获得最佳结果:

选择游标模型

  1. 允许命令执行 — 启用游标以为您运行命令:

允许运行命令

在游标中克隆您的仓库

  1. 在游标中按 Shift+Command+P (Mac) 或 Shift+Ctrl+P (Windows) 打开命令面板
  2. 输入“clone”并选择 Git: Clone“
  3. 粘贴您的GitHub仓库URL: https://github.com/YOUR-USERNAME/your-lovable-app.git
  4. 选择一个文件夹来保存项目

在Cursor中克隆

  1. Cursor将克隆并打开您的项目

在Cursor中打开

步骤 3 — 安装依赖项并本地运行

  1. Command+K (Mac) Ctrl+K (Windows)
  2. 输入以下命令:
Install Homebrew, Node.js and npm on my system, then install dependencies and run the dev server

AI将自动检测您的操作系统,安装 Node.js,并运行 npm install, 并且使用 npm run dev.

Install Homebrew

方法 2:手动安装

在 Cursor 中打开终端,按 Shift+Command+T (Mac) 或 Shift+Ctrl+T (Windows),然后:

对于 macOS:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install node
cd your-lovable-app
npm install
npm run dev

对于 Windows:

  1. 24 LTS 下载安装程序
  2. 运行安装程序
  3. 打开终端并运行:
cd your-lovable-app
npm install
npm run dev

Lovable.dev 本地应用程序正在运行

通常,Lovable 应用程序在 http://localhost:8080http://localhost:5173 — 使用您的终端打印的地址。

Ctrl + C 当您准备继续时,停止开发服务器。

成功: 您的应用程序在浏览器中打开,UI 正常工作。

步骤 4 — 准备静态生产构建

Capacitor 需要在添加原生平台之前进行生产构建。

React + Vite (最喜欢的应用)

点击 Command+K (Mac) 或 Ctrl+K (Windows) 并询问:

Configure vite.config for Capacitor mobile deployment with base './' and production build to dist

方法 2: 手动配置

确认 vite.config.ts 使用相对基准,因此资产在本机 WebView 中加载:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  base: './',
  build: {
    outDir: 'dist',
  },
})

构建和验证:

npm run build

您应该看到一个 dist/ 文件夹 index.html 在其根目录。

Lovable.dev静态导出成功

Legacy Next.js Lovable 项目

如果您的仓库使用 Next.js,请问 Cursor:

Add a static export script to package.json and configure next.config.js for mobile export with Capacitor

将您的 Next.js 应用程序转换为移动应用 查看完整 next.config 的设置,然后使用 webDir: 'out' 在 Capacitor 中代替 dist.

成功: 一个静态构建文件夹存在(dist/ 或”,)包含 out/index.html.

步骤 5 — 添加 Capacitor 和原生平台

Capacitor 将您的 web 应用包装在真实的 iOS 和 Android 外壳中 — 无需重写。

Command+K (Mac) 或 Ctrl+K (Windows) 并问:

Install Capacitor CLI, initialize it for my app with webDir dist, and add iOS and Android platforms

AI 将要求您输入 应用名称包装 ID (例如 com.yourcompany.myapp).

Capacitor 初始化

Method 2: 手动安装

npm install @capacitor/core @capacitor/cli
npx cap init

当提示:

提示 示例 注意
应用名称 我的可爱应用 应用程序图标下显示
应用程序包 ID com.yourcompany.myapp 反向域名风格 — 发布到商店后无法改变
Web 资产目录 dist 使用 out 用于 Next.js 静态导出

选择一个您实际拥有的包 ID。 包 ID 全局唯一。从开始就使用一个基于您控制的域的反向域 ID — 后来改变它意味着在所有 ios/android/ 重新构建。

npm run build
npm install @capacitor/ios @capacitor/android
npx cap add ios
npx cap add android
npx cap sync

Capacitor 平台添加

配置 Capacitor

问 Cursor:

Update capacitor.config.ts to use dist as webDir and set up for HTTPS

对于 Next.js 静态导出,要求它使用 out 而不是。

方法 2:手动配置

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.yourcompany.myapp',
  appName: 'My Lovable App',
  webDir: 'dist',
  server: {
    androidScheme: 'https',
  },
};

export default config;

构建和同步

告诉 Cursor:

Build the production web app and sync it with Capacitor platforms

方法 2:手动命令

npm run build
npx cap sync

Capacitor 同步完成

您的项目现在看起来像:

your-lovable-app/
├── android/              ← native Android project
├── ios/                  ← native iOS project
├── dist/                 ← built web app (or out/ for Next.js)
├── src/                  ← your Lovable app code
├── capacitor.config.ts
└── package.json

不需要 CocoaPods。 Capacitor 8 使用 Swift Package Manager 自动为 iOS 依赖项

成功: ios/android/ 文件夹出现,终端显示 Sync finished.

第 6 步 — 检查您的 .gitignore

Capgo 构建器从您的 Git 存储库中编译,因此 ios/ 并且 android/ 必须提交. 忽略它们在仓库根目录是很常见的错误。

确认:

  • 根目录 .gitignore 忽略 node_modules 并且 dist (云端重建 dist 在 web 构建期间)
  • ios/android/ 它们本身是 被忽略

成功: git status 显示 ios/android/ 准备好提交(不被忽略)。

步骤 7 — 提交和推送

git add .
git commit -m "Add Capacitor and native iOS/Android platforms"
git push

成功: 您的 GitHub 仓库显示 ios/android/ 文件夹。

第 8 步 — 使用 Capgo Builder 构建商店就绪二进制文件

您不需要 Mac 或本地 Xcode/Android Studio pipeline 即可交付。 Capgo Builder __CAPGO_KEEP_0__ Builder 编译、签名并可以从云端提交 iOS 和 Android 构建。

设置 Capgo Builder

npx @capgo/cli@latest login
npx @capgo/cli@latest init
npx @capgo/cli@latest build init --platform ios
npx @capgo/cli@latest build init --platform android

只需保存一次签名凭证。

— 为开发构建注册您的 iPhone 管理凭据从 Windows 构建 iOS.

请求云构建

npm run build
npx cap sync
npx @capgo/cli@latest build com.yourcompany.myapp --platform ios --build-mode release
npx @capgo/cli@latest build com.yourcompany.myapp --platform android --build-mode release

在终端中流式传输构建日志。配置了 App Store Connect 后,iOS 构建可以自动上传到 TestFlight。

在真机上安装:

  • iOS: TestFlight(推荐)或已注册设备 UDID 的开发构建
  • Android: Google Play 内部测试轨道或已签名的发布 APK/AAB

成功: 已签名的构建完成,您可以在真机上安装它。

步骤 9 — 可选:在 Xcode 或 Android Studio 中本地测试

如果您有 Mac 或想在云构建之前进行模拟器测试:

对于 iOS

Open the iOS project in Xcode

方法 2:手动命令

npx cap open ios

打开 Xcode 的 Lovable 项目

第一次 Xcode 设置:

  1. 从设备下拉菜单中选择一个模拟器(例如 iPhone 15)
  2. 对于真实设备:启用 自动管理签名 并选择您的 Apple Developer 团队
  3. 点击 ▶️ Play 按钮 — 第一次构建需要 5–10 分钟

可爱的应用程序在 iOS 上运行

适用于 Android

Open the Android project in Android Studio

方法 2:手动命令

npx cap open android

Android Studio 打开可爱的项目

第一次 Android Studio 设置:

  1. 如果提示,请安装缺少的 SDK 包
  2. 在设备管理器中创建一个模拟器(例如 Pixel 6,API 33+)
  3. 点击绿色 ▶️ 运行按钮 — 第一次构建需要 5-15 分钟

可爱的应用程序在 Android 上运行

使用本地 IDE 进行日常调试。使用 Capgo Builder 当您需要签名的发布二进制文件时。

成功: 在模拟器或模拟器中打开应用程序,显示您的可爱内容。

第 10 步 — 启用实时重载(开发)

通过将本地开发服务器指向本地 shell 来加速迭代。

告诉 Cursor:

Set up live reload for Capacitor development with my local IP address

方法 2:手动设置

  1. 找到您的本地 IP 地址:
# macOS
ipconfig getifaddr en0

# Windows
ipconfig
  1. 更新 capacitor.config.ts:
import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.yourcompany.myapp',
  appName: 'My Lovable App',
  webDir: 'dist',
  server: {
    url: 'http://YOUR_IP_ADDRESS:5173',
    cleartext: true,
  },
};

export default config;

使用端口 80803000 如果这是你想要的 npm run dev 打印。

  1. 应用更改:
npx cap copy

实时重载已启用

成功: 您对 web code 的编辑将在设备或模拟器上实时重载。

步骤 11 — 添加本机功能:摄像头

一个 Capacitor 插件让 JavaScript 能够调用真实设备功能。我们将添加摄像头插件,使用户能够拍照 — 这是浏览器标签无法可靠地做到的。

告诉 Cursor:

Add the Capacitor Camera plugin with iOS and Android permissions and a button to take a photo

方法 2:手动安装

npm install @capacitor/camera
npx cap sync

iOS — 添加到 ios/App/App/Info.plist inside the top-level <dict>:

<key>NSCameraUsageDescription</key>
<string>This app uses the camera to take photos.</string>

Android — 添加到 <manifest>android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA" />
import { Camera, CameraResultType } from '@capacitor/camera';

async function takePhoto() {
  const photo = await Camera.getPhoto({
    quality: 90,
    resultType: CameraResultType.Uri,
  });
  return photo.webPath;
}

Native features added

Adding a plugin requires a fresh native build 通过 Capgo Builder 在设备上才能正常工作前需要重新编译一次。

Success: Camera code 编译完成并无错误. npx cap sync __CAPGO_KEEP_0__

第 12 步 — 添加 Capgo 实时更新

原生变化通常需要通过应用商店审查。 Capgo 实时更新 通过实时更新,__CAPGO_KEEP_0__ 可以将更改推送到您的应用的 web 层 (HTML、CSS、JS、图像),在几分钟内完成。

在首次发布中安装更新器 这样您就不会在需要发布修复时等待审查。

npm install @capgo/capacitor-updater
npx cap sync

添加到 capacitor.config.ts:

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.yourcompany.myapp',
  appName: 'My Lovable App',
  webDir: 'dist',
  plugins: {
    CapacitorUpdater: {
      autoUpdate: true,
    },
  },
};

export default config;

在应用入口中初始化 (例如 src/main.tsx):

import { CapacitorUpdater } from '@capgo/capacitor-updater';

void CapacitorUpdater.notifyAppReady();

提交、推送并运行一个新的 Capgo 构建器构建,以便更新器 SDK 位于本机 shell 中。

在发布后上传 web 包:

npm run build
npx @capgo/cli@latest bundle upload --channel production

查看 Capgo 实时更新文档.

成功: 更新插件已安装并 notifyAppReady() 在启动时运行.

步骤 13 — 使用实时更新修复状态栏间距

在真实的 iPhone 上, 您的标题可能会 the status bar (clock and battery). Modern Capacitor draws edge-to-edge, so your app must respect 状态栏(时钟和电池)下。现代 __CAPGO_KEEP_0__ 绘制边缘到边缘,因此您的应用程序必须尊严地: env(safe-area-inset-top), -bottom, -left, -right.

安全区域内边距 pt-6许多可爱的应用程序已经处理了底部内边距,但使用固定顶部填充(如

)而没有顶部内边距。 viewport-fit=cover 1. 确认 index.html:

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />

2. 修复顶部标题 — 使用 max() 以保持 Web 缓冲区并在凹槽设备上生长:

/* Before */
padding-top: 1.5rem;

/* After */
padding-top: max(1.5rem, env(safe-area-inset-top));

在 Cursor 或 Lovable 中询问:

“The app content runs under the status bar at the top on mobile. Add env(safe-area-inset-top) 在移动设备上,应用内容在状态栏顶部运行。添加 max()到每个页面标题顶部的填充,保持现有填充为最小值。”

3. OTA 部署修复 — 这是纯 CSS,Native 重建不需要:

git add .
git commit -m "Fix top safe area on mobile"
git push
npm run build
npx @capgo/cli@latest bundle upload --channel production

在您的设备上强制关闭应用,重新打开它,等待 ~15–30 秒,然后再次打开。标题应该位于状态栏下方 — 修复了无需商店审核。

成功: 顶部内容在 OTA 包应用后清除状态栏。

For deeper layout work, see @capgo/tailwind-capacitor and Capacitor edge-to-edge display.

第 14 步 — 准备您的商店列表

您的应用程序已构建、可安装,并且您可以推送即时更新。发布到公共商店主要是文书工作:

  • 应用程序图标 — iOS 需要 1024×1024px(无透明度),Google Play 需要 512×512px
  • 截图 — 苹果要求 iPhone 6.9“ (1320×2868px) 截图
  • 应用程序名称、副标题、描述、关键词
  • 隐私政策 URL ——两家商店都需要,甚至免费应用
  • 年龄等级 ——每个控制台的问卷
  • 数据收集披露 ——苹果隐私营养标签和谷歌数据安全
Set up app icons and splash screens for my Capacitor app

方法 2:手动设置

npm install -D @capacitor/assets
# Add assets/icon.png (1024x1024) and assets/splash.png (2732x2732)
npx capacitor-assets generate
npx cap sync

应用程序资产生成

什么在“live”之前:

  1. 谷歌 Play 封闭测试 (个人帐户创建于 2023 年 11 月 13 日之后): 至少 12 个测试者在生产访问之前连续 14 天
  2. 提交审核 —— Apple ~3–5 天,Google ~3–7 天测试要求满足后。

查看我们的 首次应用审查指南 完整清单。

常见错误(和如何解决它们)

  • Could not find the web assets directory: ./dist —— 运行 npm run buildnpx cap addnpx cap sync. 确保 webDircapacitor.config.ts 匹配您的框架输出(dist 对于 Vite, out 适用于 Next.js 静态导出)
  • “此 App ID … 不可用” — 选择一个你控制的反向域 ID。它是全局唯一的。
  • iOS 构建失败后更改了 bundle ID — 在原生项目中找到并替换 Apple App Store Connect 中的 ID ios/android/,提交,重建。
  • 启动时白屏 — 在 Vite 配置中设置 base: './' 在状态栏下面的内容 npx cap sync.
  • — 添加 在 Vite 配置中设置,重建,运行 viewport-fit=coverenv(safe-area-inset-top) 填充(第 13 步)。
  • 调试模式的 APK — 谷歌 Play 会拒绝调试版本。使用您的 keystore 签署一个发布版本。
  • 部署被拒绝 — 版本已经存在 — 在本机项目中增加版本/构建号并重新构建。

有关 Capgo 构建器问题,请参见 本机构建故障排除实时更新调试.

结论

您将可爱的 Web 应用转换为本机 iOS 和 Android — 在云中构建而无需 Mac,具有实时摄像头功能和布局修复的实时更新。完成了最困难的部分。

下一步骤

注册一个免费的 Capgo 帐户 以启用实时更新和云原生构建。

资源

继续从将您的可爱应用程序转换为 iOS 和 Android 的 Capacitor

如果您正在使用 将您的可爱应用程序转换为 iOS 和 Android 的 Capacitor 为计划原生插件工作而计划,连接它与 Capgo 插件目录 在Capgo插件目录中,产品工作流程为: Capacitor由Capgo提供 for the implementation detail in Capacitor Plugins by Capgo, Capgo插件的实现细节由__CAPGO_KEEP_1__提供 Capgo原生构建 在__CAPGO_KEEP_0__原生构建中,产品工作流程为: 从Windows构建iOS

Capacitor实时更新应用程序

当web层bug处于活跃状态时,通过Capgo将修复推送到用户,而不是等待几天的应用商店审批。用户在后台接收更新,而本机更改保持在正常审批路径中。

立即开始

最新博客文章

Capgo为您提供创建真正专业的移动应用所需的最佳见解。