Skip to content

Developer Guide

zapcannon87 edited this page Nov 17, 2017 · 19 revisions

更新 IM 协议

目前 IM 采用 Protobuf 作为数据交换格式。Protobuf 需要一个文件来定义数据结构,通常该文件的后缀名为 .proto。目前 IM 协议的 .proto 文件在 avoscloud-push 仓库中维护。当 IM 协议有新的数据结构引入时,SDK 需要将 .proto 文件编译成目标平台的源文件。对于 Objective-C SDK,步骤如下:

  1. 确保当前系统安装了 Protobuf "~> 3.3.0"(macOS 推荐使用 brew 安装);
  2. 下载 .proto 文件,将其重命名为 messages.proto.orig
  3. 在 messages.proto.orig 文件的目录,执行命令 mkdir objc && protoc --proto_path=. --objc_out=objc messages.proto.orig
  4. 将 objc 目录下的源文件拷贝到 SDK 的 AVOS/AVOSCloudIM/Commands 目录下;
  5. 执行 AVOS/AVOSCloudIM/Commands/subst.tcl 来修改代码中的符号前缀;
  6. 编译 IM 模块,确认是否一切正常。

Tips

  • @synchronized 是最低效的同步锁(ref1ref2)。对线程的相关操作建议使用「GCD」或「Run Loop」。