# im-ios-sdk
**Repository Path**: juggleim/im-ios-sdk
## Basic Information
- **Project Name**: im-ios-sdk
- **Description**: No description available
- **Primary Language**: Objective-C
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2024-08-22
- **Last Updated**: 2026-09-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
---
## 为什么选择 JuggleIM
JuggleIM 为 JuggleIM 实时消息体系提供 iOS 客户端 SDK,适合需要连接管理、可靠消息投递、自定义消息类型和可选通话能力的生产级聊天应用。
- 支持自定义服务地址和 appKey 初始化。
- 支持连接、重连、会话、历史消息、未读数和回执。
- 支持文本、图片、文件、自定义消息和业务通知消息。
- 支持单聊、群聊、聊天室和直播通话流程。
- 可按需集成 Zego、Agora 和 LiveKit 通话插件。
## 功能特性
- 核心 IM 能力:连接管理、重连、消息收发、历史消息和未读状态。
- 消息类型:文本、图片、文件、自定义消息和通知消息。
- 扩展能力:自定义消息类型、推送 Token 注册和通话集成。
- Demo 应用:QuickStart 提供登录、聊天、群组、自定义消息和通话流程示例。
## 快速开始
### 安装
如果你是基于当前仓库做本地开发,可以在 App 工程的 Podfile 中使用本地路径引入:
```ruby
pod 'JuggleIM', :path => './JuggleIM'
pod 'JZegoCall', :path => './JZegoCall' # 可选
```
### 初始化
在 `AppDelegate` 中初始化 SDK:
```swift
import JuggleIM
JIM.shared().setServerUrls(["wss://your-im-server"])
JIM.shared().setConsoleLogLevel(.verbose)
JIM.shared().initWithAppKey("your_app_key")
```
### 连接并发送消息
使用后端签发的 IM token 连接:
```swift
JIM.shared().connectionManager.connect(withToken: "user_im_token")
```
发送一条文本消息:
```swift
let textMessage = JTextMessage(content: "Hello from JuggleIM")
let conversation = JConversation(conversationType: .private, conversationId: "TARGET_USER_ID")
let message = JIM.shared().messageManager.sendMessage(
textMessage,
in: conversation
) { sentMessage in
print("sent:", String(describing: sentMessage))
} error: { code, errorMessage in
print("error:", code.rawValue, String(describing: errorMessage))
}
```
### 推送 Token
如果需要推送,在登录后注册 APNs 和 VoIP Token:
```swift
JIM.shared().connectionManager.registerDeviceToken(deviceToken)
JIM.shared().connectionManager.registerVoIPToken(pushCredentials.token)
```
## 仓库结构
| 目录 | 说明 |
| --- | --- |
| `JuggleIM` | 核心 IM SDK |
| `QuickStart` | iOS Demo 应用和业务示例 |
| `JZegoCall` | Zego 通话插件 |
| `JAgoraCall` | Agora 通话插件 |
| `JLiveKitCall` | LiveKit 通话插件 |
## 运行 Demo
1. 使用 Xcode 打开 `QuickStart/QuickStart.xcworkspace`。
2. 确保 CocoaPods 依赖已安装。
3. 运行 `QuickStart` scheme。
4. 按你的环境配置 `appKey`、IM 服务地址和可选通话凭证。
可以重点查看这些入口:
- `QuickStart/QuickStart/AppDelegate.swift`
- `QuickStart/QuickStart/ViewController.swift`
- `QuickStart/QuickStart/Sections/GroupChannel`
## 文档
- 官方文档:
## 生态
| 项目 | 说明 |
| --- | --- |
| [im-web-sdk](https://github.com/Juggleim/im-web-sdk) | Web SDK |
| [im-server](https://github.com/Juggleim/im-server) | 自托管 IM 后端 |
| [im-admin](https://github.com/Juggleim/im-admin) | 管理控制台 |
| [im-android-sdk](https://github.com/Juggleim/im-android-sdk) | Android SDK |
| [im-ios-sdk](https://github.com/Juggleim/im-ios-sdk) | iOS SDK |
| [web-im-demo](https://github.com/Juggleim/web-im-demo) | Web 集成示例 |
## 需要完整的即时通讯应用?
JuggleIM SDK 适用于希望在现有应用中集成即时通讯能力的开发者。
如果你正在开发一款独立的即时通讯产品,且不希望从零开始实现常见的 IM 产品功能,**JuggleChat** 提供 Android、iOS、Web 和 Desktop 等各端产品级商业源码,帮助你更快完成产品开发和上线。
👉 [了解 JuggleChat 商业源码](https://juggle.im/#/jugglechat)
## 社区
- Telegram 中文群:
- Telegram English 群:
- 微信群邀请:
## 许可证
Copyright © JuggleIM。基于 [Apache License 2.0](./LICENSE) 许可发布。