How do I handle issues when integrating the Signaling SDK and Video/Voice SDK simultaneously?
When integrating Signaling SDK version 2.2.0 and above with Video/Voice SDK version 4.5.0 or higher, the following errors may appear in the IDE:
- Android
- iOS/macOS
Why this happens
Both Signaling SDK versions 2.2.0 and above and Video/Voice SDK versions 4.5.0 and above use the same library:
-
Android:
libaosl.so -
iOS/macOS:
aosl.xcframework -
Windows:
libaosl.dll
As a result, the IDE detects multiple files with the same path during the build process, leading to errors.
Solution
Follow these steps to resolve the issue:
Signaling version 2.2.8 or later
For Signaling SDK version 2.2.8 or later, compare the versions of the aosl libraries used in the Video/Voice SDK and Signaling SDK. Choose the subsequent operations based on the two.
You can find the aosl library version for the SDKs in the Video SDK or Voice SDK release notes and Signaling release notes.
- Android
- iOS/macOS
-
If the Signaling
aoslversion is lower, integrate theliteSDK: -
If the Signaling
aoslversion is higher, integrate the latestaoslcomponent and usepickFirstto ensure the higher-versionaosllibrary is prioritized during the build process.
-
If the Signaling
aoslversion is lower, integrate theliteSDK: -
If the Signaling
aoslversion is higher, add the following script to yourPodfile:infoThe following code uses the Video SDK with the package name
AgoraRtcEngine_iOSas an example. Use the actual platform and version for your integration.
Signaling version 2.2.2 to 2.2.6
For Signaling SDK versions between 2.2.2 and 2.2.6, compare the versions of the aosl libraries used in the Video/Voice SDK and Signaling SDK, then delete the library file with the lower version.
You can find the aosl library version for the SDKs in the Video SDK or Voice SDK release notes and Signaling release notes.
If the version of the aosl library included in the Video/Voice SDK package is lower, delete the outdated library file based on the target platform:
- Android: Delete the older-version
libaosl.sofile from the SDK package. - iOS/macOS: Delete the older-version
aosl.xcframeworkfile from the SDK package. - Windows: Delete the older-version
libaosl.dllfile from the SDK package.
If the version of the aosl library in the Signaling SDK package is lower, integrate the lite SDK, then clean and rebuild your project to resolve the library conflict.
- Android
- iOS/macOS
Signaling versions prior to 2.2.2
If you are using a Signaling SDK version prior to 2.2.2, refer to the following solutions based on your platform.
- Android
- iOS/macOS
- Flutter
-
Using CDN
-
Manually delete the following files from the SDK package:
-
lib/x86/libaosl.so -
lib/x86_64/libaosl.so -
lib/armeabi-v7a/libaosl.so -
lib/arm64-v8a/libaosl.so
- Rebuild the project
-
-
Using Maven
-
Add a
packagingOptionsblock to theandroidblock of yourbuild.gradlefile to ensure the first matching native library is prioritized during the build process: -
After the Gradle files are synchronized, rebuild the project.
-
-
Using CDN
-
Manually delete the
libs/aosl.xcframeworkfile from the SDK package. -
Rebuild the project.
-
-
Using Cocoapods
-
Add the following script to the end of your project
podfile: -
Run
pod installto re-integrate the Signaling and Video/Voice SDK. -
Rebuild the project.
-
Select the solution based on your target platform:
-
Android
-
Add the dependency to the
build.gradlefile in the project root directory: -
When integrating through Maven, add a
packagingOptionsblock to theandroidblock of yourbuild.gradlefile to ensure the first matching native library is prioritized during the build process: -
After the Gradle files are synchronized, rebuild the project.
-
-
iOS
-
When integrating via CocoaPods, add the following script to the end of your project's
Podfile: -
Run
pod installto re-integrate the Signaling and Video/Voice SDK. -
Rebuild the project.
-