• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
iOS and macOS/
快速开始/
集成 SDK/
SDK
  • 概述
    • 产品概述
    • 定价
      • 账单概述
      • Chat 包月套餐
      • Chat 增值计费说明
  • 快速开始
    • 集成 SDK
      • iOS
      • macOS
    • 初始化
    • 登录登出
  • 消息
    • 介绍
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 消息变更
    • 插入消息
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 群定向消息
    • 消息免打扰
    • 消息扩展
    • 消息回应
    • 消息翻译
    • 消息置顶
  • 会话
    • 介绍
    • 会话列表
    • 获取会话
    • 会话未读数
    • 置顶会话
    • 删除会话
    • 会话草稿
    • 会话标记
    • 会话分组
  • 群组
    • 介绍
    • 管理群组
    • 群资料
    • 管理群成员
    • 群成员资料
    • 自定义属性
    • 群计数器
  • 社群话题
    • 管理社群
    • 权限组
  • 用户
    • 用户资料
    • 用户状态
    • 管理好友
    • 好友分组
    • 黑名单
    • 关注与粉丝
  • 本地搜索
    • 搜索消息
    • 搜索好友
    • 搜索群组
    • 搜索群成员
  • 信令
  • 客户端 API
    • Swift
    • Objective-C
  • 更新日志
  • 控制台指南
    • 新版控制台说明
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
    • 用量统计
    • 实时监控
    • 开发辅助工具
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 场景化实践
    • 实现直播间搭建
    • 实现游戏内聊天
    • AI 聊天机器人
    • 超大娱乐社群
    • 类Discord社群指南
  • 推送服务(Push)
    • 服务概述
    • 开通服务
    • 快速跑通
    • 厂商通道
      • 厂商配置
        • Android
        • iOS
        • Flutter
        • React-Native
      • 快速接入
        • Android
        • iOS
        • Flutter
        • React-Native
    • 数据统计
    • 排查工具
    • 客户端 API
      • Android
      • iOS
      • Flutter
      • React Native
    • 服务端 API
      • 发起全员/标签推送
      • 单发推送
      • 获取应用属性名称
      • 设置应用属性名称
      • 获取用户属性
      • 设置用户属性
      • 删除用户属性
      • 获取用户标签
      • 添加用户标签
      • 删除用户标签
      • 清空用户标签
      • 推送撤回
    • 推送回调
      • 全员/标签/单发回调
      • 其他推送回调
    • 高级功能
      • 自定义角标
      • 自定义铃音
      • 自定义小图标
      • 自定义点击跳转
      • 推送消息分类
    • 更新日志
      • Android
      • iOS
      • Flutter
      • React Native
    • 常见问题
  • 错误码

iOS

本文主要介绍如何快速将 Chat SDK 集成到您的 iOS 项目中。

开发环境要求

Xcode 9.0+。
iOS 8.0 以上的 iPhone 或者 iPad 真机。
项目已配置有效的开发者签名。

集成 SDK

您可以选择使用 CocoaPods 自动加载的方式,或者先 下载 SDK,再将其导入到您当前的工程项目中。

CocoaPods 自动加载

1. 安装 CocoaPods

在终端窗口中输入如下命令(需要提前在 Mac 中安装 Ruby 环境):
sudo gem install cocoapods

2. 创建 Podfile 文件

进入项目所在路径输入以下命令行,之后项目路径下会出现一个 Podfile 文件。
pod init

3. 编辑 Podfile 文件

请您按照如下方式设置 Podfile 文件:
platform :ios, '8.0'
source 'https://github.com/CocoaPods/Specs.git'

target 'App' do
# 添加 Chat SDK
pod 'TXIMSDK_Plus_iOS'
# pod 'TXIMSDK_Plus_iOS_XCFramework'
# pod 'TXIMSDK_Plus_Swift_iOS_XCFramework'


# 如果您需要添加 Quic 插件,请取消下一行的注释
# 注意:
# - 这个插件必须搭配 TXIMSDK_Plus_iOS 或 TXIMSDK_Plus_iOS_XCFramework 版本的 Chat SDK 使用,并且插件版本号必须和 Chat SDK 版本号相同
# - 对于 TXIMSDK_Plus_Swift_iOS_XCFramework 版本,不需要添加这个插件,如果您需要在这个版本中使用 Quic 功能,请您联系我们
# pod 'TXIMSDK_Plus_QuicPlugin'
end

4. 更新并安装 SDK

在终端窗口中输入如下命令以更新本地库文件,并安装 Chat SDK:
pod install
或使用以下命令更新本地库版本:
pod update
pod 命令执行完后,会生成集成了 SDK 的 .xcworkspace 后缀的工程文件,双击打开即可。 若 pod 搜索失败,建议尝试更新 pod 的本地 repo 缓存。更新命令如下:
pod setup
pod repo update
rm ~/Library/Caches/CocoaPods/search_index.json
说明:
Quic 插件,提供 axp-quic 多路传输协议,弱网抗性更优,网络丢包率达到 70% 的条件下,仍然可以提供服务。仅对专业版、专业版plus和企业版用户开放,请 购买专业版 、专业版plus或企业版后可使用。为确保功能正常使用,请将终端 SDK 更新至 7.7.5282 及其以上的版本。
如果您需要在 Swift 版本的 Chat SDK 中使用 Quic 功能,请您通过 Telegram 技术交流群 联系我们。

手动集成

1. 下载 SDK

Github 下载最新版本 SDK。ImSDK_Plus.framework 是增强版 Chat SDK 的核心动态库文件。

2. 创建工程

创建一个新工程

填入工程名(例如 IMDemo):


3. 集成 SDK

添加依赖库:选中 IMDemo 的 Target,在 General 面板中的 Embedded Binaries 和 Linked Frameworks and Libraries 添加依赖库 ImSDK_Plus.framework。


设置链接参数:在 Build Setting>Other Linker Flags 添加 -ObjC
说明
手动集成需要在 TARGET > General > Frameworks > Libraries and Embedded Content,将 ImSDK_Plus.framework 修改为 Embed&Sign。
如果您需要添加 Quic 插件,请参考前面的步骤,手动下载集成 Quic 插件。

引用 Chat SDK

项目代码中使用 SDK 有两种方式:
方式 1,在 Xcode > Build Setting > Header Search Paths 设置 SDK 头文件的路径,然后在项目需要使用 SDK API 的文件里,引入具体的头文件。
#import "ImSDK_Plus.h"
方式 2,在项目需要使用 SDK API 的文件里,引入具体的头文件。
#import <ImSDK_Plus/ImSDK_Plus.h>

常见问题

[Xcodeproj] Unknown object version (60). (RuntimeError)



使用 Xcode15 创建新工程来集成 SDK 时,输入 pod install 后,可能会遇到此问题,原因是使用了较旧版本的 CocoaPods ,此时有两种解决办法:
解决方式一: 修改 Xcode 工程的 Project Format 版本。

解决方式二: 升级本地的 CocoaPods 版本,升级方式本文不再赘述。
您可以在终端输入 pod --version 查看当前的Pods版本。

Xcode 15 开发者沙盒选项问题
Sandbox: bash(xxx) deny(1) file-write-create

当您使用 Xcode 15 创建一个新工程时, 可能会因为此选项导致编译运行失败,建议您关闭此选项。

Xcode 16 不支持 Framework 开启 bitcode 问题
解决方案1:升级 SDK 如果您使用的是包含 Bitcode 的旧版本 SDK(如 TXIMSDK_iOS),建议您按照本文档的指引,将 SDK 升级至 TXIMSDK_Plus_iOS_XCFramework。 解决方式2: 修改 Podfile 配置
在您的 Podfile 末尾新增如下配置,重新 Pod install。
post_install do |installer|
bitcode_strip_path = 'xcrun --find bitcode_strip'.chop!
def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
framework_path = File.join(Dir.pwd, framework_relative_path)
command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
puts "Stripping bitcode: #{command}"
system(command)
end
framework_paths = [
"/Pods/TXIMSDK_iOS/ImSDK.framework/ImSDK",
]
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
end

在技术社区提问