
CocoaMQTT 快速上手从环境检查到第一条连接的安装完整指南【免费下载链接】CocoaMQTTMQTT 5.0 client library for iOS and macOS written in Swift项目地址: https://gitcode.com/gh_mirrors/co/CocoaMQTTCocoaMQTT 是用 Swift 编写的 MQTT轻量级发布/订阅消息协议客户端库同时支持 3.1.1 和 5.0 两个版本帮你在 iOS 与 macOS App 里几行代码完成消息收发。这篇安装上手指南带你从环境检查一路走到第一条连接成功。CocoaMQTT 适合谁先判断值不值得装你要做一个需要接物联网平台的 App设备状态上报、指令下发走 MQTT 的发布/订阅模型而不是轮询 HTTP 接口。你的 broker 是 3.1.1 还是 5.0 不确定也没关系同一套依赖里两个协议都有客户端类按 broker 能力各选一个。你要走 WebSocket/WSS 连 broker比如 broker 在网关后面、只能开 80/443 端口它有现成的 WebSocket 传输不用自己包一层。你还要兼顾 tvOS、visionOS 等其他苹果平台它也能覆盖visionOS 只支持 Swift 包管理这条路线。反过来说如果你的 App 只是调普通 REST API不用 MQTT 协议这篇可以跳过了。动手前先做 3 件事逐项核对环境一份能用的 Xcode含 Swift 5 工具链包清单要求 Swift 5.7 工具版本以上。确认方法——在终端运行下面这条命令看到版本号输出就算就绪xcodebuild -version成功后你会看到类似Xcode 15.x的版本和 build 号没装的话先去 App Store 装一份。部署目标不低于 iOS 12 / macOS 10.13确认方法——在 Xcode 里选中你的 target打开 General 页看 Minimum Deployments低于基线就调上来。一个能连通的 broker 地址host 端口自建或公共测试 broker 都行。确认方法——先确认网络策略放行了这个端口后面验证环节马上要连它。如果你走 CocoaPods 路线还要多备一样CocoaPods 本身。没装的话先补上gem install cocoapods装完pod --version能出版本号即就绪。一条主线走通用 Swift Package Manager 四步装完这是 README 里覆盖面最广的路线iOS、macOS、tvOS、visionOS 全支持也是唯一支持 visionOS 的路线。打开项目在 Xcode 中打开你的工程从顶部File菜单选择Add Package Dependencies旧版 Xcode 在 File Swift Packages 子菜单下。输入地址把仓库地址https://gitcode.com/gh_mirrors/co/CocoaMQTT粘贴进输入框回车解析。成功后 Xcode 会列出仓库里可用的版本列表。选版本并挂 target选最新版或指定版本范围在弹出的 target 选择里勾选CocoaMQTT产品需要 WebSocket 传输的再加勾CocoaMQTTWebSocket。写代码在你打算用 MQTT 的文件里加一行导入。这一步在干什么告诉编译器你的代码依赖这个库。import CocoaMQTT成功后你会看到 import 不再标红target 的依赖列表里出现 CocoaMQTT。换条路也能到CocoaPods 与 Carthage 两条备选CocoaPods适合整个团队已经用 Pod 管理依赖、不想混入新工具的情况。注意它不支持 visionOS。编辑Podfile加入下面这段把 target 名换成你的注释处是占位符use_frameworks! target YourAppTargetName do # 换成你的 target 名 pod CocoaMQTT # 需要 WebSocket 就改成 CocoaMQTT/WebSockets end保存后在项目目录运行pod install然后用 Xcode 打开生成的.xcworkspace。成功后你会看到 Podfile.lock 生成Pods 工程里多出 CocoaMQTT 和它的依赖MqttCocoaAsyncSocket 等。Carthage只推荐给本来就依赖 Carthage、又不想动现有工具链的老项目。在 Cartfile 里加一行指向 CocoaMQTT 仓库github emqx/CocoaMQTT master然后运行carthage update --platform iOS,macOS --use-xcframeworks进 Xcode 的 General 页把Carthage/Build里的 CocoaMQTT.xcframework 拖进 Frameworks, Libraries, and Embedded Content选 Embed Sign。成功后你会看到它出现在嵌入列表里构建不再报找不到符号。路线步骤数依赖工具适用场景SwiftPM推荐4 步仅 Xcode新项目、全平台含 visionOS默认首选CocoaPods3 步CocoaPods存量 Pod 项目不支持 visionOSCarthage4 步Carthage存量 Carthage 项目、不想引入新工具三条路线装的都是同一份源码只是交付方式不同如果项目里已经有一条路线在用别混装。装完怎么确认没装歪连一次公共 broker 看输出最小验证动作不写业务逻辑只建一个 3.1.1 客户端连公共测试 broker看回调里拿到的确认码。下面这段代码在干什么建客户端、填公共测试账号、发起连接。let clientID CocoaMQTT- String(ProcessInfo().processIdentifier) let mqtt CocoaMQTT(clientID: clientID, host: broker.emqx.io, port: 1883) mqtt.username test // 公共测试账号 mqtt.password public // 公共测试密码 mqtt.delegate self mqtt.connect()再让承接回调的类实现委托方法把结果打出来func mqtt(_ mqtt: CocoaMQTT, didConnectAck ack: CocoaMQTTConnAck) { print(连接成功确认码: \(ack.code)) }成功后你会看到控制台打印连接成功确认码: 00 表示 broker 接受连接。想要更直观的验证也可以打开仓库里的示例工程 Example/Example.xcodeproj 直接跑聊天界面里能看到从公共 broker 收到的消息说明整条链路都通。卡住了查这里5 个高频坑按「现象 → 原因 → 解法」排现象编译报No such module CocoaMQTT。原因pod install之后打开了.xcodeproj而不是工作区。解法用 Xcode 打开 CocoaPods 生成的.xcworkspace文件。现象SwiftPM 包已解析import 仍然标红。原因添加包时没有给当前 target 勾选产品。解法在 target 的 General 页把 CocoaMQTT及 CocoaMQTTWebSocket加进 Frameworks, Libraries, and Embedded Content。现象connect()后连不上或马上收到断开回调。原因broker 的 host/端口不通或账号密码不对。解法先核对地址与凭据再在断开回调里把 error 打出来定位是网络还是鉴权问题。现象visionOS 工程里pod install直接报错。原因CocoaPods 传递依赖未声明 visionOS 兼容性官方只支持 SwiftPM 路线。解法改用 Swift Package Manager 安装。现象WebSocket 大消息接收时报错或截断。原因内置的 URLSessionWebSocketTask 传输默认有 1 MiB 的消息缓冲上限。解法连接前把websocket.maximumMessageSize调大到大于预期最大消息或设 0 表示不限制。接着去哪完整功能文档TLS 配置、双向认证、WebSocket 定制、大消息发送等都在 README.md装通之后按场景查。可运行的示例 App含聊天演示与双向 TLS 配置参考Example/Example.xcodeproj。版本变更与 2.x 长期维护策略CHANGELOG.md。【免费下载链接】CocoaMQTTMQTT 5.0 client library for iOS and macOS written in Swift项目地址: https://gitcode.com/gh_mirrors/co/CocoaMQTT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考