๐ฑ Flutter Zoom Meeting Wrapper
A Flutter plugin that allows you to integrate the Zoom Meeting SDK into your Flutter application. This plugin enables users to join Zoom meetings directly within your app without switching to the Zoom app.
โจ Features
๐ Easy integration with the Zoom Meeting SDK
๐ Initialize SDK using a JWT token
๐ฏ Join meetings directly within your app (no Zoom app required)
๐ฑ Android & iOS platform support
๐ Full audio and video meeting experience
๐ Secure authentication flow via JWT
๐ฆ Installation
Add the following to your pubspec.yaml file:
dependencies:
flutter_zoom_meeting_wrapper: ^0.0.2
โ๏ธ Mandatory Zoom SDK Setup
๐ค Android Setup
-
Add the dependency and run
flutter pub get. -
Download the Zoom SDK ZIP from the following link:
๐ Zoom SDK Download -
Extract the ZIP file after downloading.
-
Copy the
libsfolder and paste it inside your Flutter pub-cache directory at:~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/android/๐ Replace
0.0.2with the version youโre using, if different. -
Or run the following command to open the folder directly:
open ~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/android
โ ๏ธ Important: The
libsfolder must be placed in the correct location for the plugin to function properly.
๐ iOS Setup
The iOS integration requires placing the Zoom Meeting SDK frameworks into the pluginโs ios/Frameworks/ directory inside the Flutter pub-cache. Follow these steps:
Step 1 โ Download the Zoom iOS Meeting SDK
You can download the iOS SDK using either option below:
Option A โ Direct Download (Google Drive)
๐ Download iOS SDK from Google Drive
Extract the ZIP file after downloading.
Option B โ Zoom Marketplace
- Go to https://marketplace.zoom.us/ and sign in.
- Navigate to your appโs credentials page.
- Download the iOS Meeting SDK ZIP package.
- Extract the ZIP file.
Step 2 โ Copy frameworks into the plugin
Open the pub-cache directory for the pluginโs iOS folder:
open ~/.pub-cache/hosted/pub.dev/flutter_zoom_meeting_wrapper-0.0.2/ios/Frameworks
๐ Replace
0.0.2with the version youโre using, if different.
Copy all of the following items from the extracted Zoom SDK into the Frameworks/ folder:
| File / Folder | Description |
|---|---|
MobileRTC.xcframework |
Core Zoom Meeting SDK |
MobileRTCResources.bundle |
UI resources (required at runtime) |
MobileRTCScreenShare.xcframework |
Screen sharing support |
zoomcml.xcframework |
Zoom companion framework (required) |
After copying, the folder should look like:
ios/Frameworks/
โโโ MobileRTC.xcframework
โโโ MobileRTCResources.bundle
โโโ MobileRTCScreenShare.xcframework
โโโ zoomcml.xcframework
โ ๏ธ Important:
zoomcml.xcframeworkis required. If it is missing,pod installwill fail with an error.
Step 3 โ Configure minimum iOS version
In your appโs ios/Podfile, make sure the platform is set to iOS 15.0 or higher:
platform :ios, โ15.0โ
Step 4 โ Exclude unsupported simulator architectures
The Zoom SDK frameworks include arm64 simulator slices only (no x86_64). Add the following to your ios/Podfileโs post_install block to prevent build errors on Intel Mac simulators:
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
installer.aggregate_targets.each do |aggregate_target|
aggregate_target.user_project.native_targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[โEXCLUDED_ARCHS[sdk=iphonesimulator*]โ] = โ$(inherited) i386 x86_64โ
config.build_settings[โSUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPADโ] = โNOโ
end
end
aggregate_target.user_project.save
end
end
Step 5 โ Install pods
Run the following from your projectโs ios/ directory:
cd ios && pod install
Step 6 โ Add required permissions
Add the following keys to your appโs ios/Runner/Info.plist so the system grants Zoom the access it needs:
<key>NSCameraUsageDescription</key>
<string>Camera access is required for video meetings.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access is required for audio in meetings.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo library access is required to share images in meetings.</string>
Step 7 โ Build and run on a device
flutter run
โ ๏ธ Note: The Zoom SDK simulator frameworks are
arm64-only. Testing on a physical iPhone or iPad is recommended. Running on an Intel-based Mac simulator may not work even with the architecture exclusions above.
๐ Getting Started with Zoom SDK
- Create a Zoom Developer Account at https://marketplace.zoom.us/
- Create an app in the Zoom Marketplace
- Get your API Key and API Secret from the app credentials
- Use these to generate your JWT token
๐ Generate JWT Token
To generate a ZOOM JWT token, you can use https://jwt.io/ with the following payload and signature: Payload:
{
"appKey": "ZOOM-CLIENT-KEY",
"iat": ANY-TIME-STAMP,
"exp": ANY-TIME-STAMP, //greater than iat
"tokenExp": ANY-TIME-STAMP //greater than iat
}
Verify Signature:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
"ZOOM-CLIENT-SECRET"
)
๐ Usage
Initialize the SDK
First, initialize the Zoom SDK with your JWT token:
import 'package:flutter_zoom_meeting_wrapper/flutter_zoom_meeting_wrapper.dart';
// Initialize Zoom SDK
bool isInitialized = await ZoomMeetingWrapper.initZoom(jwtToken);
Join a Meeting
Once initialized, you can join a Zoom meeting like this:
bool joinSuccess = await ZoomMeetingWrapper.joinMeeting(
meetingId: "your_meeting_id",
meetingPassword: "meeting_password",
displayName: "Your Name",
);
โ ๏ธ Common Issues
JWT Token Invalid: Ensure your API Key and Secret are correct, and check that your system time is accurate.
Failed to initialize SDK: Make sure you have a stable internet connection and valid JWT token.
Cannot join meeting: Verify that the meeting ID and password are correct.
โก Limitations
๐ผ๏ธ Custom UI overlays are not supported in the current version
๐น Recording meetings is not supported in this plugin
๐ฅ๏ธ Screen sharing functionality is limited to platform capabilities
๐จโ๐ป Code Contributors