From bffa11e2b68fbeb3e782019bf52e404a357ec9fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=9F=E5=9B=94?= Date: Sat, 7 Aug 2021 05:30:07 +0800 Subject: [PATCH] fix: fix BuildableMacOSApp pass no projectBundleId to super error (#87264) --- .../lib/src/macos/application_package.dart | 5 +++-- .../general.shard/macos/application_package_test.dart | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/macos/application_package.dart b/packages/flutter_tools/lib/src/macos/application_package.dart index ed629ce05af..6b13115f7c2 100644 --- a/packages/flutter_tools/lib/src/macos/application_package.dart +++ b/packages/flutter_tools/lib/src/macos/application_package.dart @@ -24,7 +24,8 @@ abstract class MacOSApp extends ApplicationPackage { /// Creates a new [MacOSApp] from a macOS project directory. factory MacOSApp.fromMacOSProject(MacOSProject project) { - return BuildableMacOSApp(project); + // projectBundleId is unused for macOS apps. Use a placeholder bundle ID. + return BuildableMacOSApp(project, 'com.example.placeholder'); } /// Creates a new [MacOSApp] from an existing app bundle. @@ -139,7 +140,7 @@ class PrebuiltMacOSApp extends MacOSApp { } class BuildableMacOSApp extends MacOSApp { - BuildableMacOSApp(this.project); + BuildableMacOSApp(this.project, String projectBundleId): super(projectBundleId: projectBundleId); final MacOSProject project; diff --git a/packages/flutter_tools/test/general.shard/macos/application_package_test.dart b/packages/flutter_tools/test/general.shard/macos/application_package_test.dart index 42587be74f5..2f13bd33adc 100644 --- a/packages/flutter_tools/test/general.shard/macos/application_package_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/application_package_test.dart @@ -12,8 +12,10 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/os.dart'; import 'package:flutter_tools/src/base/utils.dart'; +import 'package:flutter_tools/src/globals_null_migrated.dart' as globals; import 'package:flutter_tools/src/ios/plist_parser.dart'; import 'package:flutter_tools/src/macos/application_package.dart'; +import 'package:flutter_tools/src/project.dart'; import 'package:test/fake.dart'; import '../../src/common.dart'; @@ -154,6 +156,14 @@ group('PrebuiltMacOSApp', () { expect(macosApp.id, 'fooBundleId'); expect(macosApp.bundleName, endsWith('bundle.app')); }, overrides: overrides); + + testUsingContext('Success with project', () { + final MacOSApp macosApp = MacOSApp.fromMacOSProject(FlutterProject.fromDirectory(globals.fs.currentDirectory).macos); + + expect(logger.errorText, isEmpty); + expect(macosApp.id, 'com.example.placeholder'); + expect(macosApp.name, 'macOS'); + }, overrides: overrides); }); }