Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to Load Info.plist in macOS with vscode and Android Studio #134191

Open
2 tasks done
natsuk4ze opened this issue Sep 7, 2023 · 7 comments
Open
2 tasks done

Fails to Load Info.plist in macOS with vscode and Android Studio #134191

natsuk4ze opened this issue Sep 7, 2023 · 7 comments
Labels
a: desktop Running on desktop c: fatal crash Crashes that terminate the process engine flutter/engine repository. See also e: labels. found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 has reproducible steps The issue has been confirmed reproducible and is ready to work on P2 Important issues not at the top of the work list platform-mac Building on or for macOS specifically team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team

Comments

@natsuk4ze
Copy link
Contributor

natsuk4ze commented Sep 7, 2023

Is there an existing issue for this?

Steps to reproduce

  1. create project with macOS enable
  2. replace main.dart to
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(const App());

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: FilledButton(
            onPressed: () async => const MethodChannel('example')
                .invokeMethod<void>('requestPermission'),
            child: const Text('requestPermission'),
          ),
        ),
      ),
    );
  }
}
  1. replace info.plist to
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<!-- ADD THIS KEY -->
	<key>NSPhotoLibraryUsageDescription</key>
	<string>Description</string>
	<!-- ADD THIS KEY -->

	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIconFile</key>
	<string></string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>LSMinimumSystemVersion</key>
	<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
	<key>NSHumanReadableCopyright</key>
	<string>$(PRODUCT_COPYRIGHT)</string>
	<key>NSMainNibFile</key>
	<string>MainMenu</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
</dict>
</plist>
  1. replace MainFlutterWindow.swift to
import Cocoa
import FlutterMacOS
import Photos

class MainFlutterWindow: NSWindow {
  override func awakeFromNib() {
    let flutterViewController = FlutterViewController()
    let windowFrame = frame
    contentViewController = flutterViewController
    setFrame(windowFrame, display: true)

    let channel = FlutterMethodChannel(
      name: "example",
      binaryMessenger: flutterViewController.engine.binaryMessenger
    )

    channel.setMethodCallHandler { call, result in
      switch call.method {
      case "requestPermission":
        PHPhotoLibrary.requestAuthorization { _ in }
      default:
        result(FlutterMethodNotImplemented)
      }
    }

    RegisterGeneratedPlugins(registry: flutterViewController)
    super.awakeFromNib()
  }
}

Expected results

A permissions dialog will appear, or if already allowed, nothing will happen.
At least it does not crash.

Actual results

Info.plist does not load properly and crashes.

If I run flutter run -d macos from a terminal app on a mac, it does not crash and works fine.
With vscode, the app crashes whether I run it from the GUI or from the terminal.
Android studio shows a crash report in addition to the crash. If I select re-open in that window, the app runs fine. I think this is a clue to the solution. Furthermore, it seems that info.plist is not loaded properly, as you can see from the following log in that crash report.

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

However, when I check to see if the key exists from the application, I find that it is loaded correctly. The steps to check thet are as follows

  1. update main.dart to
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

const channel = MethodChannel('example');

void main() => runApp(const App());

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              FilledButton(
                onPressed: () async =>
                    channel.invokeMethod<void>('requestPermission'),
                child: const Text('requestPermission'),
              ),
              FilledButton(
                onPressed: () async {
                  final hasKey = await channel.invokeMethod<bool>('hasKey');
                  print(hasKey);
                },
                child: const Text('hasKey'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
  1. update MainFlutterWindow.swift to
import Cocoa
import FlutterMacOS
import Photos

class MainFlutterWindow: NSWindow {
  override func awakeFromNib() {
    let flutterViewController = FlutterViewController()
    let windowFrame = frame
    contentViewController = flutterViewController
    setFrame(windowFrame, display: true)

    let channel = FlutterMethodChannel(
      name: "example",
      binaryMessenger: flutterViewController.engine.binaryMessenger
    )

    channel.setMethodCallHandler { call, result in
      switch call.method {
      case "requestPermission":
        PHPhotoLibrary.requestAuthorization { _ in }
      case "hasKey":
        result(Bundle.main.object(forInfoDictionaryKey: "NSPhotoLibraryUsageDescription") != nil)
      default:
        result(FlutterMethodNotImplemented)
      }
    }

    RegisterGeneratedPlugins(registry: flutterViewController)
    super.awakeFromNib()
  }
}

Similar issue #70374

Screenshots or Video

Screenshots / Video demonstration
crash_in_android_studio.mov
crash_in_vscode.mov

Logs

Logs
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               example [84248]
Path:                  /Users/USER/*/example.app/Contents/MacOS/example
Identifier:            com.example.example
Version:               1.0.0 (1)
Code Type:             ARM-64 (Native)
Parent Process:        dart [84133]
Responsible:           studio [82163]
User ID:               501

Date/Time:             2023-09-07 12:22:48.4832 +0900
OS Version:            macOS 13.5.1 (22G90)
Report Version:        12
Anonymous UUID:        42AFA833-CC36-059C-4787-DBCEEAAD40B7

Sleep/Wake UUID:       EC96F29A-8D9B-4DB9-9C1A-0DEFAFAE8E62

Time Awake Since Boot: 32000 seconds
Time Since Wake:       4191 seconds

System Integrity Protection: enabled

Crashed Thread:        2  Dispatch queue: com.apple.root.default-qos

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace TCC, Code 0 
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

For more:
crash_log.txt

Flutter Doctor output

Doctor output
[✓] Flutter (Channel beta, 3.14.0-0.2.pre, on macOS 13.5.1 22G90 darwin-arm64, locale ja-JP)
    • Flutter version 3.14.0-0.2.pre on channel beta at /Users/xxx/Hack/Tools/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 123453dc41 (6 days ago), 2023-08-31 13:50:44 -0700
    • Engine revision b93c76ab94
    • Dart version 3.2.0 (build 3.2.0-42.2.beta)
    • DevTools version 2.26.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/xxx/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.73.20230904

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 13.5.1 22G90 darwin-arm64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 116.0.5845.140

[✓] Network resources
    • All expected network resources are available.

• No issues found!
@natsuk4ze natsuk4ze changed the title Info.plist does not load properly and crashes in macOS with vscode and Android Studio Info.plist can't load and crashes in macOS with vscode and Android Studio Sep 7, 2023
@natsuk4ze natsuk4ze changed the title Info.plist can't load and crashes in macOS with vscode and Android Studio Crashes Due to Failure to Load Info.plist in macOS with vscode and Android Studio Sep 7, 2023
@dam-ease dam-ease added the in triage Presently being triaged by the triage team label Sep 7, 2023
@dam-ease
Copy link

dam-ease commented Sep 7, 2023

Hi @natsuk4ze. Thanks for filing this. I am able to reproduce this as described from terminal, vscode and android studio on the latest master and stable channels. This might similar/related to #70374

stable, master flutter doctor -v

[✓] Flutter (Channel stable, 3.13.2, on macOS 13.0 22A380 darwin-arm64, locale
    en-NG)
    • Flutter version 3.13.2 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff5b5b5fa6 (2 weeks ago), 2023-08-24 08:12:28 -0500
    • Engine revision b20183e040
    • Dart version 3.1.0
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (6 available)
    • sdk gphone64 arm64 (mobile) • emulator-5556                        •
      android-arm64  • Android 14 (API 34) (emulator)
    • iPhone XS (mobile)          • 3CFD1268-0D52-486E-A12E-6E136E972D94 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 13 Pro (mobile)      • 14B6FEE4-2F1C-401F-8804-A5115D7A6DA2 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 14 (mobile)          • EDD62579-BA84-4339-BDA7-E870040C507A • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)             • macos                                •
      darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)                • chrome                               •
      web-javascript • Google Chrome 116.0.5845.179

[✓] Network resources
    • All expected network resources are available.

• No issues found!
[✓] Flutter (Channel master, 3.14.0-14.0.pre.116, on macOS 13.0 22A380 darwin-arm64, locale en-NG)
    • Flutter version 3.14.0-14.0.pre.116 on channel master at /Users/damilolaalimi/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 3e65d04cfb (31 hours ago), 2023-09-06 02:45:33 -0400
    • Engine revision bace539bb6
    • Dart version 3.2.0 (build 3.2.0-134.0.dev)
    • DevTools version 2.27.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (6 available)
    • sdk gphone64 arm64 (mobile) • emulator-5556                        • android-arm64  • Android 14 (API 34) (emulator)
    • iPhone XS (mobile)          • 3CFD1268-0D52-486E-A12E-6E136E972D94 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 13 Pro (mobile)      • 14B6FEE4-2F1C-401F-8804-A5115D7A6DA2 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • iPhone 14 (mobile)          • EDD62579-BA84-4339-BDA7-E870040C507A • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-4 (simulator)
    • macOS (desktop)             • macos                                • darwin-arm64   • macOS 13.0 22A380 darwin-arm64
    • Chrome (web)                • chrome                               • web-javascript • Google Chrome 116.0.5845.179

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@dam-ease dam-ease added engine flutter/engine repository. See also e: labels. platform-mac Building on or for macOS specifically a: desktop Running on desktop c: fatal crash Crashes that terminate the process team-tool Owned by Flutter Tool team found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 has reproducible steps The issue has been confirmed reproducible and is ready to work on and removed in triage Presently being triaged by the triage team labels Sep 7, 2023
@natsuk4ze
Copy link
Contributor Author

natsuk4ze commented Sep 8, 2023

Running it in xcode also works fine.

@christopherfujino
Copy link
Member

cc @vashworth

@vashworth
Copy link
Contributor

This is interesting. So when I run from the terminal or VSCode, it crashes for me. The OP says it worked for them from the terminal, but it doesn't for me.

So, I can confirm that the Info.plist is correct. When I looked into the build/macos/Build/Products/Debug/my_app.app/Contents/Info.plist, I could see the NSPhotoLibraryUsageDescription listed as expected.

If I ran the app by doing open build/macos/Build/Products/Debug/my_app.app, the permission works as expected and doesn't crash. If I run the app by doing build/macos/Build/Products/Debug/my_app.app/Contents/MacOS/my_app (as the tool does), it crashes.

The same thing happens if I built it through Xcode. Xcode will build it somewhere in DerivedData, and if I open the my_app.app it works as expected, but if I open it via the executable (my_app.app/Contents/MacOS/my_app), it crashes.

The mac logs I think expose the issue:

When using the .app (no crash), I got the following logs:

tccd: [com.apple.TCC:access] AUTHREQ_PROMPTING: msgID=14269.3, service=kTCCServicePhotos, subject=Sub:{com.example.myApp}Resp:{TCCDProcess: identifier=com.example.myApp, pid=14269, auid=1107598, euid=1107598, binary_path=/xxx/my_app/build/macos/Build/Products/Debug/my_app.app/Contents/MacOS/my_app},

When using the executable (that crashes), I got the following logs:

tccd: [com.apple.TCC:access] AUTHREQ_PROMPTING: msgID=11805.6, service=kTCCServicePhotos, subject=Sub:{com.googlecode.iterm2}Resp:{TCCDProcess: identifier=com.googlecode.iterm2, pid=1255, auid=1107598, euid=1107598, responsible_path=/Applications/iTerm.app/Contents/MacOS/iTerm2, binary_path=/Applications/iTerm.app/Contents/MacOS/iTerm2},
...
tccd: [com.apple.TCC:access] Refusing authorization request for service kTCCServicePhotos and subject Sub:{com.googlecode.iterm2}Resp:{TCCDProcess: identifier=com.googlecode.iterm2, pid=1255, auid=1107598, euid=1107598, responsible_path=/Applications/iTerm.app/Contents/MacOS/iTerm2, binary_path=/Applications/iTerm.app/Contents/MacOS/iTerm2} without NSPhotoLibraryUsageDescription key
...
my_app: (TCC) [com.apple.TCC:access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

So it looks like it's thinking iTerm (my terminal) is the one requesting the PhotoLibrary access when the executable is used and since iTerm's Info.plist doesn't have a key for NSPhotoLibraryUsageDescription, it crashes.

Not sure on the fix here, but I'm pretty sure that's the problem.

@natsuk4ze natsuk4ze changed the title Crashes Due to Failure to Load Info.plist in macOS with vscode and Android Studio Fails to Load Info.plist in macOS with vscode and Android Studio Feb 4, 2024
@natsuk4ze
Copy link
Contributor Author

natsuk4ze commented Feb 4, 2024

Hello everyone. In my current environment, it no longer crashes in vscode. Instead, whenever I do a requestPermission, access is denied.

[✓] Flutter (Channel beta, 3.19.0-0.2.pre, on macOS 14.3 23D56 darwin-arm64, locale ja-JP)
    • Flutter version 3.19.0-0.2.pre on channel beta at /Users/_/Hack/Tools/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c1df7d07ac (3 weeks ago), 2024-01-17 15:42:07 -0800
    • Engine revision 4f18bb4dcb
    • Dart version 3.3.0 (build 3.3.0-279.0.dev)
    • DevTools version 2.31.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/_/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.14.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.85.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.81.20231227

[✓] Connected device (5 available)
    • A063 (mobile)           • 192.168.1.6:41093                    • android-arm64  • Android 13 (API 33)
    • iPhone 13 mini (mobile) • 00008110-0019388A3E98801E            • ios            • iOS 17.4 21E5184i
    • iPhone 15 (mobile)      • 345670C7-4E97-4F45-82C6-6411FA62B829 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-17-2 (simulator)
    • macOS (desktop)         • macos                                • darwin-arm64   • macOS 14.3 23D56 darwin-arm64
    • Chrome (web)            • chrome                               • web-javascript • Google Chrome 121.0.6167.139

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@lukemmtt
Copy link

lukemmtt commented May 1, 2024

Regarding the bug discussed here earlier (i.e. permissions not working right for macOS builds launched from VSCode or Android Studio), I've gathered some likely-relevant discussions for reference:

For what it's worth, my workflow for debugging anything involving Calendar or Reminders macOS permissions right now is:

  1. Launch debug or release build from Android Studio. Permissions will not work at this stage, and any attempt to read permission will return PermissionStatus at the OS level.
  2. Ensure the launcher icon is saved in the dock, then close the app & reopen it by clicking on icon in dock
  3. Permissions work as expected.

@andrewkolos andrewkolos added the triaged-tool Triaged by Flutter Tool team label May 7, 2024
@AlexV525
Copy link
Member

AlexV525 commented May 13, 2024

Could we identify if this is a Flutter issue or an Apple issue?

Something related:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: desktop Running on desktop c: fatal crash Crashes that terminate the process engine flutter/engine repository. See also e: labels. found in release: 3.13 Found to occur in 3.13 found in release: 3.14 Found to occur in 3.14 has reproducible steps The issue has been confirmed reproducible and is ready to work on P2 Important issues not at the top of the work list platform-mac Building on or for macOS specifically team-tool Owned by Flutter Tool team triaged-tool Triaged by Flutter Tool team
Projects
None yet
Development

No branches or pull requests

7 participants