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.xcworkspaceSDK 未发布时的本地集成
上面的远程 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。