集成 SDK
更新时间: 2024/03/13 14:30:02
网易云信 IM 即时通讯服务基于网易多年的通信服务技术积累,致力于打造最稳定的即时通讯平台。NetEase Instant Messaging Flutter SDK(以下简称为 NIM Flutter SDK)为 Flutter 应用提供完善的即时通信功能开发框架,屏蔽其内部复杂细节,对外提供较为简洁的 API,方便您的应用快速集成即时通信功能。
NIM Flutter SDK 目前支持 Android 和 iOS。非移动端(包括 Windows、macOS 和 Web)仍为 Beta 版本,处于内测阶段,敬请期待。
开发环境
请确保您的开发环境,满足如下要求:
-
Flutter-dart 2.17.0 及以上版本。
-
各端开发环境要求:
Android- Android Studio 3.5 及以上版本。
- App 要求 Android 4.4 API 19 及以上版本设备。
- 1.5.21以上版本的
kotlin-gradle-plugin
。
iOS- Xcode 11.0 及以上版本。
- App 要求 iOS 11.0 以上版本设备。
- 项目已设置有效的开发者签名。
Windows、macOS 和 Web 目前仍为 Beta 版本,处于内测阶段,敬请期待。
集成SDK
NIM Flutter SDK 已经发布到 pub 库,您可以通过配置 pubspec.yaml
自动下载更新。
-
在项目的
pubspec.yaml
文件中添加以下依赖。dependencies: nim_core: ^1.1.0
-
通过 Shell 或者 IDE 执行以下命令,下载依赖包。
flutter pub get
编译与防混淆配置(仅 Android)
集成 SDK 之后,Android 端还需要额外添加以下配置。
编译配置
-
使用
kotlin-gradle-plugin
,在工程根目录的build.gradle
文件中添加以下配置。groovy
//file: build.gradle buildscript { ext.kotlin_version = '1.5.21' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
-
在
app/build.gradle
中配置packagingOptions
,示例如下:groovy
//file: app/build.gradle // 新增:启用 kotlin 插件 apply plugin: 'kotlin-android' android { // 其他配置 ... packagingOptions { pickFirst 'lib/x86/libc++_shared.so' pickFirst 'lib/x86_64/libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' pickFirst 'lib/arm64-v8a/libc++_shared.so' } }
防混淆配置
代码混淆是指使用简短无意义的名称重命名已存在的类、方法、属性等,增加逆向工程的难度,保障 Android 程序源码的安全性。
为了避免因上述的重命名而导致调用 NIM SDK 异常,请在 proguard-rules.pro 文件中加入以下代码,将 NIM Flutter SDK 相关类加入不混淆名单。
groovy-dontwarn com.netease.**
-keep class com.netease.** {*;}
-dontwarn org.apache.lucene.**
-keep class org.apache.lucene.** {*;}
-keep class net.sqlcipher.** {*;}