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

Chore: upgrade to Flutter 3.24.3 and XCode 16.0 #289

Merged
merged 24 commits into from
Nov 11, 2024

Conversation

ivard
Copy link
Member

@ivard ivard commented Oct 18, 2024

Fixes #284

TODOs:

  • Lottie animation in IntroductionAnimationWrapper does not render correctly using Impeller renderer (I haven't checked NameChangedScreen so it might be there too)
[ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Requested texture size (8296, 2732) exceeds maximum supported size of (8192, 8192)
[ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Could not create multisample color texture.
[ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Render target does not have color attachment at index 0.
[ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Render target does not have color attachment at index 0.
[ERROR:flutter/impeller/base/validation.cc(59)] Break on 'ImpellerValidationBreak' to inspect point of failure: Subpass render target is invalid.

@ivard ivard force-pushed the upgrade-flutter-and-xcode branch from 44be29b to eb34db5 Compare October 18, 2024 11:46
@ivard ivard changed the title Chore: upgrade to Flutter 2.24.3 and XCode 15.4 Chore: upgrade to Flutter 3.24.3 and XCode 15.4 Oct 18, 2024
@ivard ivard changed the title Chore: upgrade to Flutter 3.24.3 and XCode 15.4 Chore: upgrade to Flutter 3.24.3 and XCode 16.0 Oct 19, 2024
@ivard ivard force-pushed the upgrade-flutter-and-xcode branch from 9d240bd to 203f65b Compare October 31, 2024 08:33
@w-ensink
Copy link
Collaborator

w-ensink commented Nov 5, 2024

I have run the integration tests both on my physical device (iPhone 13 Pro) as well as in a simulator and both succeed without any problem. I'm running iOS 18.1 and use Xcode 16.1.

The Firebase CI still fails, even after upgrading to Xcode 16.1. Maybe it's caused by using an older iPhone and iOS combi (iPhone 8 and iOS 15)

As for the Lottie animation: on my physical device I don't have any trouble with the Impeller engine, but on the simulator I do get the same error.
I have tried using a different Lottie animation and that didn't cause any problems. I also tried scaling the animation down, which seems fix it too.

The errors only begin when the animation zooms in at the end, which leads me to believe it renders at a much higher resolution at that point (e.g. rendering the whole thing and then zooming in on the result or something).

- should be switched back on once the issue with rendering the Lottie
  animation is resolved
@ivard
Copy link
Member Author

ivard commented Nov 5, 2024

I tested it again locally with my iPhone 8 and XCode 16.1 and the test still fails after ~6 minutes. You have to run it by doing flutter build ios ./integration_test/test_all.dart --config-only and then run the test target in XCode on your physical iPhone. Did you also run the test via XCode?

@ivard
Copy link
Member Author

ivard commented Nov 5, 2024

Concerning the lottie animation, weird that your physical iPhone does not show the error. Maybe it only occurs on devices with smaller screen dimensions.

@w-ensink
Copy link
Collaborator

w-ensink commented Nov 5, 2024

You have to run it by doing flutter build ios ./integration_test/test_all.dart --config-only and then run the test target in XCode on your physical iPhone. Did you also run the test via XCode?

I tested with both flutter test integration_test/test_all.dart and flutter build ios ./integration_test/test_all.dart --config-only + running from Xcode. The result is exactly the same, both work flawlessly for me and pass without any errors after like 15 minutes or so 🤔

Concerning the lottie animation, weird that your physical iPhone does not show the error. Maybe it only occurs on devices with smaller screen dimensions.

Maybe, but that would imply it should also work with simulators for bigger devices, but that's not the case for me.. What iOS version does you iPhone 8 run? The iPhones on the Firebase CI use iOS 15, right?

@ivard
Copy link
Member Author

ivard commented Nov 5, 2024

When I use 'Product > Run' in XCode then the test runs the full 15 minutes, but when I use 'Product > Test' then the tests stop after ~6 minutes on my physical iPhone 8.

@w-ensink
Copy link
Collaborator

w-ensink commented Nov 5, 2024

Interesting.. I used Product > Test and it worked just fine. Do you know what the difference between these two/three options is? E.g. why would we pick the failing version over the passing flutter test integration_test/test_all.dart?

Edit: just did another run with the same, now it also crashed on me.

@ivard
Copy link
Member Author

ivard commented Nov 5, 2024

I think that when using flutter test, the device is only used to run the tests and the test conclusions are made by Flutter based on the system logs. When using 'Product > Test' in XCode, we use XCode for everything, also for validating whether the tests have succeeded. We need the latter mechanism to build the integration tests for running them in the Firebase device test lab.

You can check the documentation here:
https://github.com/flutter/flutter/blob/master/packages/integration_test/README.md#ios-device-testing

w-ensink and others added 8 commits November 7, 2024 14:52
- with the Xcode 15 update Apple most likely broke the integration_test
  package from Flutter for tests longer than 6 minutes, this is a
workaround for that.
- they can run separately, each hopefully taking less than 6 minutes
- rename disclosure_session_test.dart to test_all so it won't be picked
  up by the ios test building script
@ivard ivard force-pushed the upgrade-flutter-and-xcode branch from 50fbc57 to 4a67d87 Compare November 8, 2024 09:57
@ivard ivard force-pushed the upgrade-flutter-and-xcode branch from 83a655d to c80d410 Compare November 8, 2024 14:32
@w-ensink
Copy link
Collaborator

w-ensink commented Nov 11, 2024

I removed integration-test-ios from the branch protection rules, because it would never complete due to GitHub Actions not really understanding the matrix. I added a final job, called integration-test-ios-summary, that checks the results of the matrix and then passes or fails based on that. I added that job to the branch protection rules so all iOS tests still need to pass before merge.

@w-ensink w-ensink marked this pull request as ready for review November 11, 2024 13:48
Copy link

@DibranMulder DibranMulder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good we are dropping iOS 11 support but has been unsupported for quite some time now. The latest release date is from July 9, 2018 according to https://en.wikipedia.org/wiki/IOS_version_history

ios/Flutter/AppFrameworkInfo.plist Show resolved Hide resolved
@w-ensink w-ensink merged commit e884b60 into master Nov 11, 2024
27 of 29 checks passed
@w-ensink w-ensink deleted the upgrade-flutter-and-xcode branch November 11, 2024 14:12
@ivard
Copy link
Member Author

ivard commented Nov 11, 2024

Looks good we are dropping iOS 11 support but has been unsupported for quite some time now. The latest release date is from July 9, 2018 according to https://en.wikipedia.org/wiki/IOS_version_history

iOS 11 wasn't supported by us anymore anyway, because gomobile dropped support for this quite some time ago.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

iOS SDK version 16 (XCode 14) is not supported anymore
3 participants