According to https://github.com/actions/runner-images#available-images, currently `macos-latest` is pointing to macos 14 images, which come bundled with xcode 15. Apple now requires xcode 16, which we'll get by updating to `macos-15`.
This also bumps the version github uses to `16.3` (by default it will stay at 16.0), and adds a note to the README that ideally we should all be using the same version of xcode that is used to build the app that is sent to Apple.
We could get fancier with this, but I don't think it's really necessary right now. See https://www.polpiella.dev/managing-xcode-installs-using-fastlane for other approaches.
* Upgrade to Flutter 3.29.0
* Update cocoapods lock file
* Update .gitignore
* Add analysis_options.yaml to set line length default
* Bump required Dart to 3.7.0 as well
Restrict the dart version to max 3.6.0
* Disable formatting to allow merging with formatting that needs to happen
The main thing here is that it will support edge-to-edge when we target android 15, and it changes the default for deep links.
The update to mobile_scanner should improve ios simulator support, but I'm finding that the app still won't load in the simulator (even without mobile_scanner at all), so there's some other work to do there.
https://medium.com/flutter/whats-new-in-flutter-3-27-28341129570c
This updates kotlin, gson, AGP, and WorkManager to the latest versions.
It also updates the README to include the correct ndk version for our AGP, as specified here: developer.android.com/build/releases/gradle-plugin#compatibility
This updates flutter to 3.24.1, the latest stable version, and also updates our flutter dependencies to latest.
It targets the latest android sdk, 34, which is required if we want to publish a new version to the Google Play store.
I also needed to make a few adjustments to handle deprecations. The biggest change is that I needed to wrap the main widget in MaterialApp to avoid problems with AdaptiveSwitch in iOS.
- Updated README with some maybe-helpful instructions for downgrading
flutter to a version that will build the project
- Added a step to create a missing directory to the Gradle build
(otherwise the build fails)
- Set `shrinkResources false` - otherwise you get an error that you
can't shrink resources unless you also enable minifying