Swift Package 形态的会议 SDK,对外模块名为 SMeeting,当前支持:
- iOS 16.0 及以上
- macOS 14.0 及以上
- Xcode 15 及以上
- Swift 5.9 及以上
SMeeting 时,SRTC 会作为依赖被一并解析,你不需要单独再加一次。
苹果平台有两套 SMeeting SDK,先确认你要用哪一套。 本章是 Swift 原生 SDK(
import SMeeting,Swift Package 形态,同时支持 iOS 与 macOS);另有一套 Objective-C 的 MeetingKit(CocoaPods 分发,仅 iOS),见 iOS SDK。新项目建议用本章的 Swift SDK。 两套 API 不能混用,也不要在同一工程里同时引入。通过 Swift Package Manager 集成
SDK 以预编译 XCFramework 形式分发,包含 iOS 真机、iOS 模拟器、macOS 三个平台切片。 会议层构建在音视频层之上,但你只需要声明一个依赖 —— 底层的 SRTC 与 WebRTC 会被 SPM 自动解析。在 Package.swift 中声明
在 Xcode 工程中添加
如果你使用 Xcode 工程而不是纯 SPM 工程:- 打开
File > Add Package Dependencies... - 填入
https://github.com/seastart/smeeting-swift-sdk.git - 在目标 Target 中勾选
SMeeting
例外:iOS 全屏共享需要再加一条依赖
只有要做 iOS 全屏屏幕共享(共享整个系统屏幕,而非仅本 App 画面)时才需要这一步。它的扩展侧要链接SRTCBroadcastKit —— 那是音视频层 srtc-swift-sdk 的第二个产物(不含 WebRTC),而 SwiftPM 不允许使用传递依赖的产品,所以要显式再声明一次:
exact: 钉住,保证是我们测过的组合),可以在 更新日志 里查到对应关系。
导入 SDK
SMeetingEngine、MeetingCreateReq、MeetingUserInfo、SMeetingDelegate 等)都在 SMeeting 模块里。
以下几类类型来自底层 SRTC 模块,用到时需要额外引入:
权限配置
iOS
在Info.plist 中补充:
iOS 上入会时就会申请麦克风权限,即使成员只打算旁听;入会期间状态栏也会显示橙色麦克风指示点。这是音频路由可控的前提,与 Zoom、腾讯会议等 App 一致,原因见 音频路由。所以
NSMicrophoneUsageDescription 是必填项,缺了会崩溃。macOS
在Info.plist 中补充:
- macOS 上选择显示器或应用窗口共享需要用户在系统弹窗中授权
- 指定共享源的接口要求 macOS 12.3 及以上,详见 屏幕共享
最小接入检查清单
- 已将
SMeeting添加到目标依赖 - 已配置摄像头 / 麦克风(以及屏幕录制)权限文案
- 业务后端已能签发登录 SDK 所需的 meeting token
- UI 层已准备好本地画面区域和远端画面区域