RoomKit
  • 平台类型
  • 框架 / 引擎
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序

集成

更新时间:2021-06-24 22:28

1 准备环境

在开始集成 RoomKit SDK 前,请确保开发环境满足以下要求:

  1. Xcode 6.0 或以上版本。
  2. iOS 9.0 或以上版本且支持音视频的 iOS 设备或模拟器(推荐使用真机)。
  3. iOS 设备已经连接到 Internet。

2 集成 SDK

2.1 新建项目(可选)

此步骤以如何创建新项目为例,如果是集成到已有项目,可忽略此步。
  1. 启动 Xcode,在 “Welcome to Xcode” 窗口中单击 “Create a new Xcode project” 或选择 “File > New > Project” 菜单。在出现的表单中,选择 iOS 平台,并在 “Application” 下选择 “App”。
  1. 填写表单并选取各个选项来配置项目,单击 “Next”。

必须提供 “Product Name” 和 “Organization Identify”,用于创建在整个系统中标识 App 的 “Bundle Identify”。

  1. 选择项目存储路径,单击 “Create” 创建项目。

2.2 导入 SDK

SDK 库文件中包含 “iphoneos” 和 “iphoneos_simulator” 两个文件夹,区别如下:

  • “iphoneos” 仅用于真机调试。用户在最终发布时,需要使用此文件下的动态库,否则可能被苹果打回。
  • “iphonos_simulator” 包含了真机和模拟器调试的库。如果用户开发过程中使用模拟器调试,需要导入此文件夹下的动态库。但是最终发布时,要切换回 “iphoneos” 文件下的 framework。

在下面的设置步骤中,请选择符合开发要求的 framework 文件。

  1. 请参考 下载 SDK 包,下载最新版本的 SDK,下载完成后进行解压。
  2. 手动将 SDK 动态库文件 “ZegoRoomKit.framework” 等 6 个库,拷贝到开发者项目目录下。
  3. 手动将 “ZegoRoomKitResources.bundle” 文件,拷贝到开发者项目目录下。
  4. 打开 Xcode,选择 “TARGETS > General > Frameworks,Libraries,and Embedded Content”,点击 “+” 添加上述 6 个动态库。

/Pics/RoomKit/iOS/framework_add.png

  1. 打开 Xcode,选择 “TARGETS > Build Phases > Copy Bundle Resources”,点击 “+” 添加 “ZegoRoomKitResources.bundle” 文件。
    /Pics/RoomKit/iOS/copy_bundle.png

2.3 配置 SDK

  1. 打开 Xcode,选择 “TARGETS > General > Frameworks,Libraries,and Embedded Content” 菜单,将添加的动态库文件的 “Embed” 设置为 “Embed & Sign”。

    Xcode11集成演示图

  2. 打开 Xcode,选择 “TARGETS > General > Framework and Libraries” 进行屏幕共享扩展设置。

    copy_bundle

3 设置权限

根据实际应用需要,设置应用所需权限。

  1. 在 Xcode 中,选择 “TARGETS > Info > Custom iOS Target Properties” 菜单。
  2. 点击 “+” 按钮,添加摄像头、麦克风和相册访问权限:
  • Privacy - Camera Usage Description
  • Privacy - Microphone Usage Description
  • Privacy - Photo Library Usage Description
    添加权限

4 添加 Cocoapods 库

开发者需要额外引入以下 Cocoapods 库,已引入的不必重复引入。

  1. 需要将引入的第三方库都设置为动态库:use_frameworks!
  2. 若工程中单独引入了 YYKit 的其它库 (如 YYModel、YYCache 等),请删除这些库,并统一使用 YYKit 库。
platform :ios, '9.0'
use_frameworks!

target 'ZegoRoomkitDemo' do
pod 'Masonry', '1.1.0'
pod 'YYKit', '1.0.9'
pod 'LEEAlert', '1.4.2'
pod 'MBProgressHUD', '1.2.0'
pod 'ReactiveObjC', '3.1.1'
pod 'SSZipArchive', '2.2.2'
pod 'TXIMSDK_Smart_iOS', '5.1.138'

5 其他设置

5.1 Capability

  • App Groups

如果要在房间内使用屏幕共享,为了在主进程和屏幕共享扩展之间共享数据,需要添加 App Group。

在 Xcode 中,选择 "Signing & Capabilities -> + Capability", 添加 App Groups 功能,然后点击 “+”,为应用程序添加一个 App Group ID。

roomkit_app_group

  • Background Modes

为了保证 App 在应用程序进入后台时也能进行通信,需要给 App 添加此功能。

在 Xcode 中,选择 "Signing & Capabilities -> + Capability",添加 Background Modes 功能,并点击选中第一项 “Audio, AirPlay, and Picture in Picture”。

roomkit_background_modes

  • iCloud

在 Roomkit 文件共享的时候可能需要选中存储在 iCloud 云盘上的文件,所有需要给应用程序添加 iCloud 能力。

在 Xcode 中,选择 "Signing & Capabilities -> + Capability",添加 iCloud 功能,然后点击选中 “Key-value storage” 和 “iCloud Documents” 两个 Services,并点击下方 '+' 按钮,给应用程序添加一个 iCloud Container。

roomkit_icloud

  • Device Orientation

需要设置应用所支持的屏幕方向,否则可能会导致 crash。
在 Xcode 中,选择 "TARGETS -> General -> Deployment Info -> Device Orientation",勾选上 “Portrait”,“Landscape Right”。

roomkit_icloud

5.2 创建屏幕共享扩展

  1. 新建一个屏幕共享 target。

roomkit_screen_share_creat01
单击 “Next”,取消勾选 “Include UI Extension”。
roomkit_screen_share_creat02

  1. 添加 App Groups,屏幕共享扩展也需要添加 App Groups,并且 group ID 需要和主 App 的 group ID 保持一致。
  2. 引入 Roomkit SDK,请参考 2 集成 SDK
  3. 实现屏幕共享扩展,请参考 示例源码

6 常见问题

  1. 打包时报错:“Failed to verify bitcode in xxx.framework/xxx”?

    请检查 Xcode 版本是否过低,建议更新为最新的 Xcode 版本。 若一定要使用旧版 Xcode 打包,请先在工程的 “Build Setting” 中找到 “Enable Bitcode” 选项并设为 “NO”,然后打开终端,cd DIRECTORY 到 xxx.framework 所在目录 DIRECTORY,执行以下命令以去除 SDK 内的 Bitcode。

    xcrun bitcode_strip .framework/xxx -r -o xxx.framework/xxx
  2. 运行 App 时提示:“Building for iOS Simulator, but the linked and embedded framework 'xxx.framework' was built for iOS + iOS Simulator.”?

    在 Xcode 12.3 版本以后,默认禁止使用带 iOS + iOS(Simulator) 双平台架构的 Framework,可以通过 Xcode 选择 “TARGETS > Build Settings > Validate Workspace”,设置该参数的值为 “YES” 来继续使用传统 Framework。