alexmercerind / flutter_acrylic

Flutter library for window acrylic, mica & transparency effects.
MIT License
595 stars 53 forks source link

Facing error after upgrading to 1.1.2 #75

Open wikimew opened 1 year ago

wikimew commented 1 year ago

Receiving this error after upgrading to version 1.1.2

6:63: error: 'self' captured by a closure before all members were initialized self.flutterViewController = flutterViewController ?? self.flutterViewController

Adrian-Samoticha commented 1 year ago

Thanks for filing the issue. Unfortunately, I am unable to reproduce it. Can you run flutter clean and see if that resolves the issue?

If it doesn’t, what version of macOS are you running your application on? What is your minimum deployment target?

Also, does your app use any other macOS plugins? Have you made any changes to any Swift files in your project? I assume you have modified your MainFlutterWindow.swift file. Can you post it here?

wikimew commented 1 year ago

Hello thank you for quick response.

I'm try to run the example app from the repo. So haven't made any modifications to the code

Running on: Flutter (Channel stable, 3.7.10, on Mac OS X 10.15.7 19H2026 darwin-x64, locale en-GB) Xcode - develop for iOS and macOS (Xcode 12.3) CocoaPods version 1.11.3

Adrian-Samoticha commented 1 year ago

I can see that you’re running a much older version of macOS than I am, so at first I suspected you were running into some sort of conditional compilation problem, but after checking the code I don’t think that’s the case.

Alright, could you perhaps clone the macos_window_utils repo on your machine and see if the same issue arises when running its example project? flutter_acrylic depends on this package for its macOS functionality, so technically speaking, this is the package that is causing the bug.

If you observe the same issue, could you open the macos/Classes/MacOSWindowUtilsViewController.swift file, and change line 16 from

self.flutterViewController = flutterViewController ?? self.flutterViewController

to

self.flutterViewController = flutterViewController ?? FlutterViewController()

and see if that resolves the issue?

wikimew commented 1 year ago

Screenshot 2023-04-14 at 11 23 38 AM

I made the mentioned changes

Launching lib/main.dart on macOS in debug mode...
Building macOS application...
Error waiting for a debug connection: The log reader stopped unexpectedly, or never started.
Error launching application on macOS.
Adrian-Samoticha commented 1 year ago

Interesting. Does running flutter clean help?

wikimew commented 1 year ago

No luck, same issue

Adrian-Samoticha commented 1 year ago

Does running the macos_window_utils_example.app.zip (from Release v1.1.2) cause the same issue, or does it only occur when the app has been compiled on your end?

wikimew commented 1 year ago

Screenshot 2023-04-17 at 10 56 03 AM

Yes this worked, so yes maybe the compiling issue

Adrian-Samoticha commented 1 year ago

That’s weird. I’m happy that this is a compilation issue at least, because I was worried that a seemingly working app might fail on a different machine. Glad that isn’t the case.

That said, I’m still puzzled as to how the app can compile differently on your machine than it does on mine. What happens when you run the macos_window_utils example through Xcode (by opening example/macos/Runner.xcworkspace)? Does Xcode show any warnings? Does cleaning the cache via ProductClean help? Are there any differences between running in debug, profile, or release mode?

wikimew commented 1 year ago

With self.flutterViewController = flutterViewController ?? FlutterViewController() I tried running it with xcode (was not able to run without this line), I was able to compile but it only shows as blank screen. Screenshot 2023-04-18 at 11 20 15 AM Same issue on debug and release mode

wikimew commented 1 year ago

For time being, I've downgraded to version 1.1.1 which works fine on my device. Thank you for the help!

Adrian-Samoticha commented 1 year ago

Be sure to version lock macos_window_utils to 1.1.1 by adding macos_window_utils: 1.1.1 to your pubspec.yaml (not macos_window_utils: ^1.1.1, since you don’t want pub to be allowed to upgrade to 1.1.2).