集成方式

更新时间: 2025/01/09 10:46:56

本文介绍了如何将网易云信 IM 即时通讯 SDK 集成到 Unity 项目中,包括导入 SDK、配置安卓和 iOS 项目的权限和编译设置,以及处理隐私权限等注意事项。

环境要求

网易云信 Unity SDK 支持的客户端系统版本如下:

  • 安卓:4.0 及以上。
  • iOS:8.0 及以上。

导入 SDK

  1. 网易云信 IM SDK 下载页面 获取 Unity SDK。

  2. 解压缩后,将 UNITY_IM_SDK.unitypackage 导入到项目中。UNITY_IM_SDK.unitypackage 不支持中文路径,请将文件放在全英文路径下。

    SDK 导入
  3. 导入时,选择里面所有的文件。如果之前使用过旧版本,请务必先删除旧版本相关的文件,然后再导入。

    如果出现报错 The type or namespace name 'JsonProperty' could not be found (are you missing a using directive or an assembly reference?),请在 Unity 项目中 Packages 目录下的 manifest.json 文件中增加包依赖 "com.unity.nuget.newtonsoft-json": "2.0.0",

安卓项目设置

  1. 导入 SDK 后,在 Plugins/Android/ 目录下,可以看到 Android Manifest 里 SDK 所需权限:

    XML<uses-permission android:name="android.permission.INTERNET" />
    <!-- Getting the state of internet for app!!!. -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- write or read user data file for app!!!. -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
    
  2. 您需要将这些 SDK 权限,添加到安卓项目 Manifest 文件中。

iOS 项目设置

导出 iOS 项目时,必须修改如下设置项才能正常使用。不发布到 iOS 平台可略过此部分。

  1. 在 Unity 中,修改项目的编译设置。

    1. 按下 Ctrl+Shift+B 快捷键,打开 Build Settings 面板。

    2. 单击 Player Settings ...,切换到 Setting for iOS 选项卡,选择 Other Settings 栏。

    3. 修改 Optimization 配置项 Script Call Optimization 的值为 Slow and Safe

      image-netease
  2. 在 Xcode 中,修改导出的 iOS 工程的编译配置。

    1. 添加 Other Linker Flags 配置 -lstdc++

    2. 确认项目中已添加了以下系统库。

      *Security.framework*
      *CoreTelephony.framework*
      *SystemConfiguration.framework*
      *JavaScriptCore.framework*
      *libz.tbd*
      *libsqlite3.tbd*
      
    3. TARGETS 下选择编译的目标配置,切换到 Build Settings 选项卡,修改配置如下。

      image-netease

      在使用旧版本的 Unity 工具,Windows 下生成的 Xcode 工程,可能会出现下面的问题:

      Build Settings 选项卡,Search Paths > Library Search Paths 其中一个路径分隔符,是反斜杠(\),请修改为正斜杠(/)。

      image-netease

注意事项

如果 Unity SDK 是手动配置的话,您需要注意 Bitcode 问题:

  • 如果在编译 Xcode 时,提示 bitcode 问题,则关闭 bitcode 或者在 Unity 里也配置支持 bitcode。

  • Unity 4.6.9 之前的版本不支持 bitcode 的设置,但是生成的 Xcode 工程,使用 Xcode7 打开就会提示 bitcode 的错误,因为 Xcode7 默认是开启 bitcode 的。

    image-netease

权限设置

iOS 10 要求开发者添加权限申请的描述,否则程序在 iOS 10 上会出现崩溃。例如,如果您需要使用语音消息,请添加麦克风权限申请的描述。有两种方式可以添加:

  • 方式一:Unity 的最新版本中,在 Player Settings 页面可以添加描述信息。

    image-netease
  • 方式二:在 Xcode 项目中找到 info.plist,打开并添加以下键值对。

    • keyPrivacy - Microphone Usage Description
    • value是否允许此 app 使用麦克风?

下一步

集成 SDK 后,您可以继续进行 初始化

此文档是否对你有帮助?
有帮助
去反馈
  • 环境要求
  • 导入 SDK
  • 安卓项目设置
  • iOS 项目设置
  • 注意事项
  • 权限设置
  • 下一步