Set the application-id in the Linux shell (#60053)
diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index 6739f6e..76aeb17 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart
@@ -747,13 +747,18 @@ final String pluginClassSnakeCase = snakeCase(pluginClass); final String pluginClassCapitalSnakeCase = pluginClassSnakeCase.toUpperCase(); final String appleIdentifier = _createUTIIdentifier(organization, projectName); + final String androidIdentifier = _createAndroidIdentifier(organization, projectName); + // Linux uses the same scheme as the Android identifier. + // https://developer.gnome.org/gio/stable/GApplication.html#g-application-id-is-valid + final String linuxIdentifier = androidIdentifier; return <String, dynamic>{ 'organization': organization, 'projectName': projectName, - 'androidIdentifier': _createAndroidIdentifier(organization, projectName), + 'androidIdentifier': androidIdentifier, 'iosIdentifier': appleIdentifier, 'macosIdentifier': appleIdentifier, + 'linuxIdentifier': linuxIdentifier, 'description': projectDescription, 'dartSdk': '$flutterRoot/bin/cache/dart-sdk', 'androidMinApiLevel': android_common.minApiLevel,
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart index 045b1e6..5bffb2f 100644 --- a/packages/flutter_tools/lib/src/project.dart +++ b/packages/flutter_tools/lib/src/project.dart
@@ -1039,6 +1039,8 @@ @override String get pluginConfigKey => LinuxPlugin.kConfigKey; + static final RegExp _applicationIdPattern = RegExp(r'''^\s*set\s*\(\s*APPLICATION_ID\s*"(.*)"\s*\)\s*$'''); + Directory get _editableDirectory => parent.directory.childDirectory('linux'); /// The directory in the project that is managed by Flutter. As much as @@ -1067,6 +1069,10 @@ Directory get pluginSymlinkDirectory => ephemeralDirectory.childDirectory('.plugin_symlinks'); Future<void> ensureReadyForPlatformSpecificTooling() async {} + + String get applicationId { + return _firstMatchInFile(cmakeFile, _applicationIdPattern)?.group(1); + } } /// The Fuchsia sub project