From 8ce26df3f1598a9d6e6c8f60932aabc3db244dd4 Mon Sep 17 00:00:00 2001 From: Alireza Hajebrahimi <6937697+iarata@users.noreply.github.com> Date: Tue, 18 Aug 2026 00:23:38 +0200 Subject: [PATCH 1/2] noise_meter v6.0.0 --- packages/noise_meter/CHANGELOG.md | 8 ++ packages/noise_meter/README.md | 30 ++++- .../example/android/app/build.gradle | 68 ----------- .../android/app/src/debug/AndroidManifest.xml | 3 +- .../android/app/src/main/AndroidManifest.xml | 3 +- .../com/example/example/MainActivity.kt | 12 -- .../noise_meter/example/android/build.gradle | 31 ----- .../example/android/gradle.properties | 7 +- .../gradle/wrapper/gradle-wrapper.properties | 3 +- .../example/android/settings.gradle | 25 ---- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../example/ios/Flutter/Debug.xcconfig | 1 - .../example/ios/Flutter/Release.xcconfig | 1 - packages/noise_meter/example/ios/Podfile | 47 -------- .../ios/Runner.xcodeproj/project.pbxproj | 113 ++++-------------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 +++ .../contents.xcworkspacedata | 3 - .../example/ios/Runner/AppDelegate.swift | 9 +- .../noise_meter/example/ios/Runner/Info.plist | 23 +++- packages/noise_meter/example/pubspec.yaml | 6 +- packages/noise_meter/pubspec.yaml | 8 +- 21 files changed, 123 insertions(+), 298 deletions(-) delete mode 100644 packages/noise_meter/example/android/app/build.gradle delete mode 100644 packages/noise_meter/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt delete mode 100644 packages/noise_meter/example/android/build.gradle delete mode 100644 packages/noise_meter/example/android/settings.gradle delete mode 100644 packages/noise_meter/example/ios/Podfile diff --git a/packages/noise_meter/CHANGELOG.md b/packages/noise_meter/CHANGELOG.md index a915464c4..a711b9e15 100644 --- a/packages/noise_meter/CHANGELOG.md +++ b/packages/noise_meter/CHANGELOG.md @@ -1,3 +1,11 @@ +## 6.0.0 + +- **Breaking:** requires Flutter `>=3.44.0` +- Updated the example app to AGP 9.0.1, Kotlin 2.3.20, Gradle 9.1.0, Java 17 and `compileSdk 37` +- Updated the example app to `permission_handler: ^13.0.1` +- Updated to `audio_streamer: ^5.0.0` +- Updated documentation + ## 5.1.0 - update to `audio_streamer: ^4.2.0` diff --git a/packages/noise_meter/README.md b/packages/noise_meter/README.md index 75e99c37b..c5e42e91f 100644 --- a/packages/noise_meter/README.md +++ b/packages/noise_meter/README.md @@ -7,18 +7,29 @@ A noise meter plugin for iOS and Android. Add `noise_meter` as a dependency in `pubspec.yaml`. For help on adding as a dependency, view the [documentation](https://flutter.io/using-packages/). -On **Android** you need to add a permission to `AndroidManifest.xml`: +### Requirements + +This plugin builds on [`audio_streamer`](https://pub.dev/packages/audio_streamer) and inherits its +platform requirements: Flutter 3.44 or later, iOS 16.0 or later, and Android `minSdk` 24 or later. + +### Android + +Add the microphone permission to `AndroidManifest.xml`: ```xml - ``` -On **iOS** enable the following in XCode: +### iOS + +Enable the following in Xcode: - Capabilities > Background Modes > _Audio, AirPlay and Picture in Picture_ - In the Runner Xcode project edit the _Info.plist_ file. Add an entry for _'Privacy - Microphone Usage Description'_ -- Edit the `Podfile` to include the permission for the microphone: + +If your app requests the permission with [`permission_handler`](https://pub.dev/packages/permission_handler) +**and still integrates iOS dependencies with CocoaPods**, edit the `Podfile` to enable the +microphone permission: ```ruby post_install do |installer| @@ -34,6 +45,17 @@ post_install do |installer| end ``` +This step is not needed with Swift Package Manager — `permission_handler_apple` enables the +microphone permission automatically when `NSMicrophoneUsageDescription` is present in +`Info.plist`. + +## Swift Package Manager + +iOS dependencies are resolved with +[Swift Package Manager](https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers) +on Flutter 3.44 and later; no configuration is needed. CocoaPods remains supported for apps that +have not migrated. The example app is integrated with SPM only and has no `Podfile`. + ## Usage See the example app for how to use the plugin. This app also illustrated how to obtain permission to access the microphone. diff --git a/packages/noise_meter/example/android/app/build.gradle b/packages/noise_meter/example/android/app/build.gradle deleted file mode 100644 index 61c61ca50..000000000 --- a/packages/noise_meter/example/android/app/build.gradle +++ /dev/null @@ -1,68 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - compileSdkVersion flutter.compileSdkVersion - namespace "com.noise_meter.example" - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - kotlinOptions { - jvmTarget = '1.8' - } - - lintOptions { - disable 'InvalidPackage' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.noise_meter.example" - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - 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 - } - } -} - -flutter { - source '../..' -} - diff --git a/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml b/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml index c3baaa2d6..f880684a6 100644 --- a/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml +++ b/packages/noise_meter/example/android/app/src/debug/AndroidManifest.xml @@ -1,7 +1,6 @@ - + - diff --git a/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml b/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml index efdfded9f..5d6b54bf3 100644 --- a/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml +++ b/packages/noise_meter/example/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,5 @@ - + + ???? CFBundleVersion 1.0 - MinimumOSVersion - 13.0 diff --git a/packages/noise_meter/example/ios/Flutter/Debug.xcconfig b/packages/noise_meter/example/ios/Flutter/Debug.xcconfig index e8efba114..592ceee85 100644 --- a/packages/noise_meter/example/ios/Flutter/Debug.xcconfig +++ b/packages/noise_meter/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/noise_meter/example/ios/Flutter/Release.xcconfig b/packages/noise_meter/example/ios/Flutter/Release.xcconfig index 399e9340e..592ceee85 100644 --- a/packages/noise_meter/example/ios/Flutter/Release.xcconfig +++ b/packages/noise_meter/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/noise_meter/example/ios/Podfile b/packages/noise_meter/example/ios/Podfile deleted file mode 100644 index b7aaa0894..000000000 --- a/packages/noise_meter/example/ios/Podfile +++ /dev/null @@ -1,47 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - target.build_configurations.each do |config| - # for more infomation: https://github.com/BaseflowIT/flutter-permission-handler/blob/master/permission_handler/ios/Classes/PermissionHandlerEnums.h - config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ - '$(inherited)', - 'PERMISSION_MICROPHONE=1',] - end - end -end diff --git a/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj index d19eb491f..058aa7921 100644 --- a/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/noise_meter/example/ios/Runner.xcodeproj/project.pbxproj @@ -8,12 +8,12 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 210F07AC63A28DD3B399AEE8 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -33,9 +33,6 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 419DD3CAB863A8EED78E0628 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6B861D0571DFE85EBC634E99 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -46,7 +43,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D00A1EEC27E8DE1D4B28BA37 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,24 +51,17 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 210F07AC63A28DD3B399AEE8 /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 8493370A2DC0A21EAF2EB288 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4651416B7DEF900CBB70EA38 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -86,8 +76,6 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - BFD471C1DF1D7CDA4616B4AB /* Pods */, - 8493370A2DC0A21EAF2EB288 /* Frameworks */, ); sourceTree = ""; }; @@ -122,32 +110,22 @@ name = "Supporting Files"; sourceTree = ""; }; - BFD471C1DF1D7CDA4616B4AB /* Pods */ = { - isa = PBXGroup; - children = ( - 6B861D0571DFE85EBC634E99 /* Pods-Runner.debug.xcconfig */, - D00A1EEC27E8DE1D4B28BA37 /* Pods-Runner.release.xcconfig */, - 419DD3CAB863A8EED78E0628 /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 40E4D1A59D758D708FE113A9 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 6C7EA70D0E2897CE334C0174 /* [CP] Embed Pods Frameworks */, - 9AB51CF4346838C124BECF9D /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -162,6 +140,9 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -222,45 +203,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 40E4D1A59D758D708FE113A9 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6C7EA70D0E2897CE334C0174 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -276,23 +218,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - 9AB51CF4346838C124BECF9D /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -368,7 +293,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -454,7 +379,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -503,7 +428,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -598,6 +523,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index fc5ae0316..0bd6d4227 100644 --- a/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/noise_meter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + - - diff --git a/packages/noise_meter/example/ios/Runner/AppDelegate.swift b/packages/noise_meter/example/ios/Runner/AppDelegate.swift index b63630348..c30b367ec 100644 --- a/packages/noise_meter/example/ios/Runner/AppDelegate.swift +++ b/packages/noise_meter/example/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/packages/noise_meter/example/ios/Runner/Info.plist b/packages/noise_meter/example/ios/Runner/Info.plist index b4a1edbf7..af5845a9c 100644 --- a/packages/noise_meter/example/ios/Runner/Info.plist +++ b/packages/noise_meter/example/ios/Runner/Info.plist @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - example + noise_meter_example CFBundlePackageType APPL CFBundleShortVersionString @@ -26,6 +26,27 @@ NSMicrophoneUsageDescription Records audio noise detection + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UIApplicationSupportsIndirectInputEvents UIBackgroundModes diff --git a/packages/noise_meter/example/pubspec.yaml b/packages/noise_meter/example/pubspec.yaml index 417b0d591..459960614 100644 --- a/packages/noise_meter/example/pubspec.yaml +++ b/packages/noise_meter/example/pubspec.yaml @@ -1,11 +1,11 @@ name: noise_meter_example description: Example app for the noise_meter package. publish_to: none -version: 5.2.0 +version: 6.0.0 environment: sdk: ">=3.8.1 <4.0.0" - flutter: ">=3.0.0" + flutter: ">=3.44.0" dependencies: flutter: @@ -14,7 +14,7 @@ dependencies: path: ../ cupertino_icons: ^1.0.2 - permission_handler: ^12.0.0 + permission_handler: ^13.0.1 dev_dependencies: flutter_test: diff --git a/packages/noise_meter/pubspec.yaml b/packages/noise_meter/pubspec.yaml index 3b7f4cb6d..2effc3fb4 100644 --- a/packages/noise_meter/pubspec.yaml +++ b/packages/noise_meter/pubspec.yaml @@ -1,11 +1,11 @@ name: noise_meter description: A Flutter plugin for collecting noise from the phone's microphone. -version: 5.1.0 +version: 6.0.0 homepage: https://github.com/cph-cachet/flutter-plugins/tree/master/packages/noise_meter environment: sdk: ">=3.8.1 <4.0.0" - flutter: ">=3.0.0" + flutter: ">=3.44.0" dependencies: flutter: @@ -16,3 +16,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: any + +flutter: + config: + enable-swift-package-manager: true From 86e8e675e7a416e54ec533284b2122ee2597c637 Mon Sep 17 00:00:00 2001 From: Alireza Hajebrahimi <6937697+iarata@users.noreply.github.com> Date: Tue, 18 Aug 2026 00:23:52 +0200 Subject: [PATCH 2/2] noise_meter v6.0.0 --- .../example/android/app/build.gradle.kts | 44 +++++++++++++++++++ .../com/noise_meter/example/MainActivity.kt | 5 +++ .../example/android/build.gradle.kts | 24 ++++++++++ .../example/android/settings.gradle.kts | 26 +++++++++++ 4 files changed, 99 insertions(+) create mode 100644 packages/noise_meter/example/android/app/build.gradle.kts create mode 100644 packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt create mode 100644 packages/noise_meter/example/android/build.gradle.kts create mode 100644 packages/noise_meter/example/android/settings.gradle.kts diff --git a/packages/noise_meter/example/android/app/build.gradle.kts b/packages/noise_meter/example/android/app/build.gradle.kts new file mode 100644 index 000000000..be823be5e --- /dev/null +++ b/packages/noise_meter/example/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.noise_meter.example" + // permission_handler_android 14 requires compiling against API 37, which is + // ahead of Flutter's default (flutter.compileSdkVersion == 36). + compileSdk = 37 + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + defaultConfig { + applicationId = "com.noise_meter.example" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + 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.getByName("debug") + } + } +} + +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + } +} + +flutter { + source = "../.." +} diff --git a/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt b/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt new file mode 100644 index 000000000..64ca36b78 --- /dev/null +++ b/packages/noise_meter/example/android/app/src/main/kotlin/com/noise_meter/example/MainActivity.kt @@ -0,0 +1,5 @@ +package com.noise_meter.example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/packages/noise_meter/example/android/build.gradle.kts b/packages/noise_meter/example/android/build.gradle.kts new file mode 100644 index 000000000..dbee657bb --- /dev/null +++ b/packages/noise_meter/example/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/packages/noise_meter/example/android/settings.gradle.kts b/packages/noise_meter/example/android/settings.gradle.kts new file mode 100644 index 000000000..c21f0c5b4 --- /dev/null +++ b/packages/noise_meter/example/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "9.0.1" apply false + id("org.jetbrains.kotlin.android") version "2.3.20" apply false +} + +include(":app")