# 跑通示例项目 (/zh-CN/solutions/showroom/get-started/run-example)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="android" platform="android" />
本文介绍如何快速跑通 `agora-ent-scenarios` 示例项目，体验带美颜效果的秀场直播。

<Cards>
  <Card title="agora-ent-scenarios" href="https://github.com/AgoraIO-Usecase/agora-ent-scenarios/tree/main/Android/scenes/show" />
</Cards>

## 前提条件 [#前提条件]

开始前，请确保满足以下前提条件：

- [开通秀场直播服务](/zh-CN/solutions/showroom/build/enable-service)
- [Git](https://git-scm.com/downloads)
- [Java Development Kit](https://www.oracle.com/java/technologies/javase-downloads.html)
- [Android Studio](https://developer.android.com/studio/) 4.1 及以上
- Android 手机，版本 Android 5.0（API Level 21）及以上
    :::warning[注意]
    声网推荐使用真机运行项目。部分模拟机可能存在功能缺失或者性能问题。
    :::

## 克隆仓库 [#克隆仓库]

运行以下命令克隆仓库到本地：

```shell
git clone git@github.com:AgoraIO-Usecase/agora-ent-scenarios.git
```

## 集成商汤美颜 SDK [#集成商汤美颜-sdk]

按照如下步骤进行集成：

1. 联系商汤技术支持获取最新的美颜 SDK 和测试证书。美颜 SDK 中包含 Android 和 iOS SDK。

2. 下载并解压美颜 SDK，然后将 SDK 中如下文件添加到秀场直播示例项目对应的文件路径下：

    | 用途 | SDK 文件 | 项目路径 |
    | --- | --- | --- |
    | 基础美颜 | `Android/aar/STMobileJNI-release.aar` | `Android/scenes/show/aars/STMobileJNI/` |
    | 基础美颜 | `Android/smaple/SenseMeEffects/app/libs/SenseArSourceManager-release.aar` | `Android/scenes/show/aars/SenseArSourceManager` |
    | 基础美颜 | `Android/models` | `Android/scenes/show/src/main/assets/` |
    | 贴纸 | `Android/smaple/SenseMeEffects/app/src/main/assets/sticker_face_shape` | `Android/scenes/show/src/main/assets/` |
    | 风格妆 | `Android/smaple/SenseMeEffects/app/src/main/assets/style_lightly` | `Android/scenes/show/src/main/assets/` |
    | 证书 | `SenseME.lic` | `Android/scenes/show/src/main/assets/license/SenseME.lic` |

3. 在项目的 `build.gradle` 文件中，将 `applicationId` 修改为你的包名，例如 `com.example.app`。包名用于在设备上唯一标识应用程序。在开发应用时，你需要设置包名。在此处设置的包名需要与你申请 SDK 时提供的包名一致。

    ```kotlin
    android {
        defaultConfig {
            applicationId "io.agora.entfull"
            ndk.abiFilters 'arm64-v8a', 'armeabi-v7a'//, 'arm64-v8a'//, 'x86', 'x86-64'
        }
    }
    ```

## 配置示例项目 [#配置示例项目]

按照如下步骤进行配置：

1. 运行秀场直播项目前，你需要在 `gradle.properties` 文件中设置如下参数：

    ```kotlin
    AGORA_APP_ID=
    AGORA_APP_CERTIFICATE=
    CLOUD_PLAYER_KEY=
    CLOUD_PLAYER_SECRET=
    ```

    你可以在[创建声网项目](/zh-CN/solutions/showroom/build/enable-service#创建声网项目)后，从控制台获取这些参数的值，详情如下：

    | 参数 | 描述   | 获取方式 |
    |----|----|----|
    | `AGORA_APP_ID`    | 声网项目的 App ID     | [获取 App ID](/zh-CN/solutions/showroom/build/enable-service#获取-app-id)  |
    | `AGORA_APP_CERTIFICATE` | 声网项目的 App 证书 |[获取 App 证书](/zh-CN/solutions/showroom/build/enable-service#获取-app-证书)   |
    | `CLOUD_PLAYER_KEY` | 声网输入在线媒体流 RESTful 服务所需的客户 ID       | [获取客户 ID 和密钥](/zh-CN/solutions/showroom/build/enable-service#获取客户-id-与客户密钥)    |
    | `CLOUD_PLAYER_SECRET` | 声网输入在线媒体流 RESTful 服务所需的客户密钥   | [获取客户 ID 和密钥](/zh-CN/solutions/showroom/build/enable-service#获取客户-id-与客户密钥)   |

2. `agora-ent-scenarios` 项目中包含在线 K 歌房、语聊房、语聊房（空间音频版）、秀场直播等模块，因此，运行秀场直播时，你可以在 `settings.gradle` 文件中注释掉其他模块。

    ```kotlin
    // 注释掉与秀场直播无关的 module
    // if (!isKTVEmpty) {
    //     include ':scenes:ktv'
    // }
    // if (!isVoiceEmpty) {
    //     include ':scenes:voice'
    //     include ':scenes:voice:common'
    // }
    // if (!isSpatialVoiceEmpty) {
    //     include ':scenes:voice_spatial'
    //     include ':scenes:voice_spatial:common'
    // }

    if(!isShowEmpty){
        include ':scenes:show'
        include ':scenes:show:aars:SenseArSourceManager'
        include ':scenes:show:aars:STMobileJNI'
    }
    ```

## 编译并运行示例项目 [#编译并运行示例项目]

按照如下步骤进行操作：

1. 开启 Android 设备的开发者选项，打开 USB 调试，通过 USB 连接线将 Android 设备接入电脑。

2. 用 Android Studio 打开 `agora-ent-scenarios/Android` 文件夹。

3. 在 Android Studio 中，点击 **Sync Project with Gradle Files** 按钮，以让项目与 Gradle 文件同步。

4. 待同步成功后，点击 `Run 'app'`。片刻后，**声动互娱**应用便会安装到你的 Android 设备上。

5. 打开**声动互娱**应用，点击**秀场直播**，即可进行体验。主播可以创建房间；观众可以加入房间。

![](https://web-cdn.agora.io/docs-files/1684826793571)
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="android" platform="ios" />
本文介绍如何快速跑通 `agora-ent-scenarios` 示例项目，体验带美颜效果的秀场直播。

<Cards>
  <Card title="agora-ent-scenarios" href="https://github.com/AgoraIO-Usecase/agora-ent-scenarios/tree/main/iOS/AgoraEntScenarios/Scenes/Show" />
</Cards>

## 前提条件 [#前提条件-1]

开始前，请确保满足以下前提条件：

- [Git](https://git-scm.com/downloads)
- [CocoaPods](https://guides.cocoapods.org/using/getting-started.html#getting-started)
- [Xcode](https://apps.apple.com/cn/app/xcode/id497799835?mt=12) 12.0 及以上
- 有效的苹果开发者账号
- [开通秀场直播服务](/zh-CN/solutions/showroom/build/enable-service)
- iOS 设备，版本 13.0 及以上
    :::warning[注意]
    声网推荐使用真机运行项目。部分模拟机可能存在功能缺失或者性能问题。
    :::

## 克隆仓库 [#克隆仓库-1]

运行以下命令克隆仓库到本地：

```shell
git clone git@github.com:AgoraIO-Usecase/agora-ent-scenarios.git
```

## 集成商汤美颜 SDK [#集成商汤美颜-sdk-1]

按照如下步骤进行集成：

1. 联系商汤技术支持获取最新的美颜 SDK 和测试证书。美颜 SDK 中包含 Android 和 iOS SDK。

2. 下载并解压美颜 SDK，然后将 SDK 中如下文件添加到秀场直播示例项目对应的文件路径下：

    | 用途 | SDK 文件 | 项目路径 |
    | --- | --- | --- |
    | 基础美颜 | `iOS/include/*.h` | `iOS/SenseLib/*.h` |
    | 基础美颜 | `iOS/libs/ios_os-universal/libst_mobile.a` | `iOS/SenseLib/libst_mobile.a` |
    | 基础美颜 | `iOS/models/model.bundle` | `iOS/SenseLib/model.bundle` |
    | 美颜贴纸 | `iOS/samples/SenseMeEffects/SenseMeEffects/datasource/resources/StickerZipAndIcons/lianxingface.zip` | `iOS/SenseLib/sticker_face_shape/lianxingface.zip` |
    | 风格妆 | `Android/smaple/SenseMeEffects/app/src/main/assets/style_lightly/qise.zip` | `iOS/SenseLib/style_lightly/qise.zip` |
    | 风格妆 | `Android/smaple/SenseMeEffects/app/src/main/assets/style_lightly/wanneng.zip` | `iOS/SenseLib/style_lightly/wanneng.zip` |
    | 证书 | `SENSEME.lic` | `iOS/AgoraEntScenarios/Scenes/Show/Beauty/SenseBeauty/SENSEME.lic` |

## 配置示例项目 [#配置示例项目-1]

按照如下步骤进行配置：

1. 运行秀场直播项目前，你需要在 `iOS/AgoraEntScenarios/KeyCenter.swift` 文件中设置如下参数：

    ```swift
    static let AppId: String = <#YOUR APPID#>
    static let Certificate: String? = <#YOUR Certificate#>
    static let CloudPlayerKey: String? = <#Your CloudPlayerKey#>
    static let CloudPlayerSecret: String? = <#Your CloudPlayerSecret#>
    ```

    你可以在[创建声网项目](/zh-CN/solutions/showroom/build/enable-service#创建声网项目)后，从控制台获取这些参数的值，详情如下：

    | 参数 | 描述   | 获取方式 |
    |----|----|----|
    | `AppId`    | 声网项目的 App ID     | [获取 App ID](/zh-CN/solutions/showroom/build/enable-service#获取-app-id)  |
    | `Certificate` | 声网项目的 App 证书 |[获取 App 证书](/zh-CN/solutions/showroom/build/enable-service#获取-app-证书)   |
    | `CloudPlayerKey` | 声网输入在线媒体流 RESTful 服务所需的客户 ID       | [生成客户 ID 和密钥](/zh-CN/solutions/showroom/build/enable-service#获取客户-id-与客户密钥)    |
    | `CloudPlayerSecret` | 声网输入在线媒体流 RESTful 服务所需的客户密钥   | [生成客户 ID 和密钥](/zh-CN/solutions/showroom/build/enable-service#获取客户-id-与客户密钥)   |

2. 在 `agora-ent-scenarios/iOS` 目录下运行 `pod install`，然后等待依赖库安装完成。

## 编译并运行示例项目 [#编译并运行示例项目-1]

按照如下步骤进行操作：

![](https://web-cdn.agora.io/docs-files/1685431554693)

1. 连接上 iOS 设备后，点击 `AgoraEntScenarios.xcworkspace` 文件以通过 Xcode 打开项目，并在 **iOS Device** 选项中勾选上你的 iOS 设备。

2. 在项目 **TARGETS** 下的 **Signing & Capabilities** 界面勾选 **Automatically manage signing**，配置你的苹果开发者账号和 **Bundle Identifier**。Bundle ID 用于在设备上唯一标识应用程序。在开发应用时，你需要设置 Bundle ID。在此处设置的 Bundle ID 需要与你申请商汤美颜 SDK 时提供的 Bundle ID 一致。

3. 点击 <InlineImage alt="开始运行" src="https://web-cdn.agora.io/docs-files/1639710560035" width={25} /> 开始编译。

4. 编译成功后，你的 iOS 设备上会出现**声动互娱**应用。在 iOS 系统设置中将该应用设为信任开发者后你才能打开应用。

5. 打开**声动互娱**应用，点击**秀场直播**，即可进行体验。主播可以创建房间；观众可以加入房间。

![](https://web-cdn.agora.io/docs-files/1684826793571)

## 常见问题 [#常见问题]

### 签名报错 [#签名报错]

使用 Xcode 14 编译失败，遇到 **Signing for "SenseLib-SenseLib" requires a development team** 的签名报错，如下面截图所示：

![](https://web-cdn.agora.io/docs-files/1685614210647)

#### 解决方案 [#解决方案]

你可以通过在 Terminal 中执行如下命令将 CocoaPods 升级到 1.12.0 以上解决报错。

```shell
sudo gem install -n /usr/local/bin cocoapods
```

#### 备选解决方案 [#备选解决方案]

如果遇到 CocoaPods 升级失败，你还可以通过手动给第三方库签名来解决报错。将 **Signing > Team** 设置为你的开发团队即可。
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
