iOS IMLib 导入

本页说明 iOS 端 IMLib 的依赖、制品与集成要求。Swift Package 名 ImpIaaSIM(IMLib)与 ImpIaaSIMKit(IMKit);Objective-C 通过 #import <ImpIaaSIM/ImpIaaSIM.h> 使用同一套实现。

安装 / 依赖​

CocoaPods
# CocoaPods(Podfile)
platform :ios, '13.0'
target 'YourApp' do
  pod 'ImpIaaSIM', '~> 1.0'      # IMLib:无 UI 通信库
  pod 'ImpIaaSIMKit', '~> 1.0'   # IMKit:可选,UI 组件
end
# 安装后打开 ImpIaaSIM.xcworkspace
SDK 未发布时的本地集成

上面的远程 Pod/SPM 地址用于正式发布;本仓库联调请用本地路径(SPM .package(path:) / podspec :path / framework),完整命令见 集成方式「本仓库本地集成」。

本地集成命令(可直接复制)
# 方式 A:SPM 本地路径(Package.swift)
.package(path: "../sdk/ios")

# 方式 B:CocoaPods 本地 podspec
pod 'ImpIaaSIM', :path => '../sdk/ios'
pod 'ImpIaaSIMKit', :path => '../sdk/ios'

# 方式 C:手工链接 framework(模拟器 x86_64)
FW="../sdk/ios/build/ImpIaaSIM.framework"
SDK=$(xcrun --sdk iphonesimulator --show-sdk-path)
xcrun swiftc -sdk "$SDK" -target x86_64-apple-ios18.0-simulator   -F ../sdk/ios/build -I "$FW/Modules"   -framework ImpIaaSIM -framework UIKit -framework Foundation   -Xlinker -rpath -Xlinker @executable_path/Frameworks   -o MyApp main.swift
# 注意:只给 -F 时 Swift 编译器看不到 Swift 声明,必须同时加 -I "$FW/Modules"

组装可安装的 .app(手工 framework 方式)​

最小 .app + codesign + simctl install
# 把可执行文件组装成可安装的 .app(模拟器)
APP=MyApp.app
mkdir -p "$APP/Frameworks"
cp MyApp "$APP/MyApp"
cp Info.plist "$APP/Info.plist"          # 至少含 CFBundleIdentifier / CFBundleExecutable / MinimumOSVersion
cp -R "$FW" "$APP/Frameworks/ImpIaaSIM.framework"   # 等价于 Xcode 的 Embed & Sign
codesign --force --deep --sign - "$APP"
xcrun simctl install booted "$APP"
xcrun simctl launch --console booted com.example.MyApp

环境要求​

项要求
语言 / 工具链Swift 5.9(Xcode 15+),同时支持 Objective-C(@objc 符号)
系统版本iOS 13.0+(async/await);arm64 设备与 x86_64/arm64 模拟器
集成方式CocoaPods / Swift Package Manager / 手动导入 XCFramework(含 dSYM)
工程配置Info.plist 的 ATS、后台模式与本地网络权限(见「工程配置」页)
线程模型IMLib 回调在主线程投递;数据库与网络在 SDK 内部串行队列,业务无需自行加锁
包体积IMLib 约 3.2 MB(arm64 瘦身);IMKit 约 1.6 MB;XCFramework 支持按需裁剪

包内容​

制品路径 / 名称说明
IMLib 包 / 模块ImpIaaSIM(Swift Package)核心通信库(连接、消息、会话、群组、好友、聊天室、上传)
IMLib 源码 / 制品Sources/ImpIaaSIM随发行包提供的源码 / 制品(内联调可源码集成)
IMKit 制品Sources/ImpIaaSIM/IMKit可选 UI 组件层,只依赖 IMLib 公开接口
契约声明面api-surface.json供零漂移校验的契约声明面

版本与兼容​

  • 契约版本:IDL v1.0.0(frozen,冻结修订 35)。
  • v1.x 采用 additive-only:仅新增可选字段、枚举值、接口与错误码,不破坏既有语义。
  • 升级时先对照「更新日志」确认新增面,再回归连接、消息、会话与群组主链路。
  • 当前平台绑定状态:ga。

下一步​