Flutter

集成 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 自动下载更新。

  1. 在项目的 pubspec.yaml 文件中添加以下依赖。

    dependencies: 
    nim_core: ^1.1.0 
    
  2. 通过 Shell 或者 IDE 执行以下命令,下载依赖包。

    flutter pub get
    

编译与防混淆配置(仅 Android)

集成 SDK 之后,Android 端还需要额外添加以下配置。

编译配置

  1. 使用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"
        }
    }
    
  2. 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.** {*;}
此文档是否对你有帮助?
有帮助
去反馈
  • 开发环境
  • 集成SDK
  • 编译与防混淆配置(仅 Android)
  • 编译配置
  • 防混淆配置