iOS 客户端
iOS 客户端基于 Swift + GoogleWebRTC 构建,内置屏幕共享广播扩展,支持单聊群聊、音视频通话与离线推送,最低支持 iOS 17。工程随源码包完整交付,替换签名、图标与名称后即可上架你自己的品牌。
环境准备
- macOS 13 及以上,Xcode 15 及以上(App Store 安装);
- CocoaPods(
sudo gem install cocoapods,国内网络建议配置镜像); - Apple Developer Program 账号(真机调试与上架必需)。
工程配置
解压源码包中的 ios/ 目录,打开 imm.xcworkspace(注意是 workspace,不是 xcodeproj),其中包含 CocoaPods 管理的依赖(GoogleWebRTC)。
工程包含两个 target:
| Target | 说明 |
|---|---|
| imm | 主应用 |
| immBroadcastExtension | 屏幕共享广播扩展 |
打造自有品牌需要修改:两个 target 的 Bundle Identifier(扩展须为主 App 前缀 + .immBroadcastExtension)、Display Name、App 图标与启动屏。
服务器与推送
- 运行后在登录页填入你的私有阁服务端地址;
- 离线推送:在服务端
.env配置 APNs 四项(见「进阶:基础服务部署」),APNS_BUNDLE_ID必须与主 App 的 Bundle Identifier 完全一致; - 首次使用音视频、相册、屏幕录制时按系统提示授权。
运行调试
首次或依赖变更后先执行:
pod install
打开 workspace → 选择 imm target → Signing & Capabilities 选择你的 Team → 连接 iPhone → Run。模拟器不支持音视频与推送,请使用真机。
打包发布
Xcode 菜单 Product → Archive,通过 Organizer 分发:
- Ad Hoc:注册设备直装,适合客户演示;
- TestFlight:内部与外部测试;
- App Store:上架审核。企业内部分发可走企业签名或超级签,按你的账号资质选择。
常见问题
- 签名报错:确认开发者账号有效、Bundle Id 未被占用,两个 target 都已选 Team;
- pod install 失败:配置 CocoaPods 国内镜像后重试;
- 收不到推送:检查
APNS_BUNDLE_ID与工程一致、.p8路径正确、iOS 设备通知权限已开启; - 屏幕共享黑屏:iOS 17 需要在控制中心发起屏幕广播,扩展 target 已内置处理。