> ## Documentation Index
> Fetch the complete documentation index at: https://docs.facebetter.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Expo 示例

> 在 Android 和 iOS 上运行 Expo 预构建示例

Expo 示例是一个 React Native 应用，用来快速看前置摄像头上的美肤效果。Android 和 iOS 共用同一套界面。它调用的是 Android 与 iOS SDK，不是 [Web](https://docs.facebetter.net/zh/web/quick-start.md) SDK。

正式接入请走 [Android](https://docs.facebetter.net/zh/android/quick-start.md) 或 [iOS](https://docs.facebetter.net/zh/ios/quick-start.md)。本页只说明如何跑通示例。用 Expo 调用本 SDK 时，应用仍然必须走 prebuild。

## Expo Go 和 prebuild

Expo 有两种启动方式。本 SDK 只能在 prebuild 里调用。

| | Expo Go | Prebuild |
| - | - | - |
| 启动 | `npx expo start`，再用 Expo Go 打开 | `npx expo run:android` 或 `npx expo run:ios` |
| 手机上跑的是什么 | 共用的 Expo Go 应用。这个工程只提供 JavaScript。 | 用本工程编译出来的应用。Expo 先生成 Android 或 iOS 工程，再编译。 |
| 美颜特效 SDK | 调不了。Expo Go 自带的原生库是固定的，不包含本 SDK，也不能再往里面装别的原生库。 | 编译时链接进去。Android 用 Maven 包，iOS 用 CocoaPods 包。 |
| 速度 | 原生 SDK 不会加载，所以没有美颜预览。 | 相机画面在应用内由原生 SDK 处理。JavaScript 只改控件。这条路径和 Android、iOS 示例相同。 |

跑本 SDK 时，prebuild 更快。美颜计算留在原生库里。同样的工作放到 JavaScript 里会慢很多，而 Expo Go 根本调不到这个库。第一次 prebuild 比打开 Expo Go 久，因为它要编译原生应用。编译完成后，预览走的就是原生 SDK。

发布包同样是 prebuild 出来的应用，不是 Expo Go。只要 Expo 工程要调用美颜特效 SDK，就用 prebuild。

## 环境要求

* **Node.js**：`^22.13` 或 `^24.3`
* **Android**：Android SDK，arm64 真机或模拟器，API 24 及以上
* **iOS**：Mac 上的 Xcode。前置摄像头请用真机。

## 获取示例

克隆 [GitHub 仓库](https://github.com/pixpark/facebetter-sdk)，进入 `demo/expo`。

```bash theme={null}
git clone https://github.com/pixpark/facebetter-sdk.git
cd facebetter-sdk/demo/expo
npm install
```

## 运行

```bash theme={null}
npx expo run:android
npx expo run:ios
```

每条命令都会先做 prebuild，生成对应平台的原生工程，再安装调试包。改了原生代码或 JavaScript 之后，再执行一次同一条命令。`npx expo prebuild` 只生成原生工程，之后可以用 Android Studio 或 Xcode 打开。

> [!WARNING]
>
> `npx expo start` 打开的是 Expo Go。这种模式加载不了本 SDK。

## 依赖

| 平台 | 包 | 示例里的应用标识 |
| - | - | - |
| Android | Maven `net.pixpark:facebetter:2.2.1` | 包名 `net.pixpark.fbexample` |
| iOS | CocoaPods `Facebetter` 2.2.1 | Bundle ID `com.pixpark.fbdemo` |

两个包都带 `resource.fbd`。示例不加载可选的 3D 和身体素材包。

示例里的凭证绑在上面的包名和 Bundle ID 上。换成自己的应用时，先在 [控制台](https://facebetter.net/zh/dashboard) 绑定包名或 Bundle ID，再改 `app.json`。见 [鉴权与许可证](https://docs.facebetter.net/zh/intro/license.md)。

## 界面

预览是前置摄像头，竖屏、镜像。底部调节 Smooth、Tone、Rosy、Blemish、Clarity 和 Skin only。右上角是最近一帧的处理耗时。左上角是机型、相机画面尺寸、送进 SDK 的尺寸，以及屏幕上的视图尺寸。相机画面比视图小很多时，会被放大，看起来发虚。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.