Project Settings
#
Permissions#
iOS/macOSAdd 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.
#
AndroidEnsure 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 SettingsIf 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 reminderWhen 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.** { *; }