Project Settings
Permissions#
iOS/macOS#
Add the following entry to your Info.plist file,
located in <project root>/ios/Runner/Info.plist and <project root>/macos/Runner/Info.plist:
<key>NSCameraUsageDescription</key><string>$(PRODUCT_NAME) Camera Usage!</string><key>NSMicrophoneUsageDescription</key><string>$(PRODUCT_NAME) Microphone Usage!</string>This entry allows your app to access camera and microphone.
Android#
Ensure the following permission is present in your Android Manifest file,
located in <project root>/android/app/src/main/AndroidManifest.xml:
<uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />If you need to use a Bluetooth device, please add:
<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />Other Settings#
If necessary, in the same build.gradle you will need to increase minSdkVersion of defaultConfig up to 21 (currently default Flutter generator set it to 16).
Important reminder#
When you compile the release apk, you need to add the following operations,
Edit <project root>/android/app/build.gradle
buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug+ minifyEnabled true+ useProguard true++ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }And create new file <project root>/android/app/proguard-rules.pro
## Flutter wrapper-keep class io.flutter.app.** { *; }-keep class io.flutter.plugin.** { *; }-keep class io.flutter.util.** { *; }-keep class io.flutter.view.** { *; }-keep class io.flutter.** { *; }-keep class io.flutter.plugins.** { *; }-dontwarn io.flutter.embedding.**
## Flutter WebRTC-keep class com.cloudwebrtc.webrtc.** { *; }-keep class org.webrtc.** { *; }