shady.ai
shady.ai copied to clipboard
[DOCS] - Create a document about using Fastlane for Flutter
Is your feature request related to a problem? Please describe. The process of building, signing and deploying apps to their official respective stores can take hours of manual work.
If I were to do this manually, I would have to compile and wait between each platform.
A single platform such as iOS could already take 15min from source code
to App Store review submission
. This is depending on the complexity of course.
Here's a breakdown of what is involved if I would create an iOS build manually (more than 15min):
- Run tools to analyze code for linter issues, unused code, unused files, unit tests etc.
- Compiling Flutter source code to unsigned iOS app
- Syncing keychain with up-to-date provisioning profiles / certificates
- Analyzing commits and bumping up the version for a semantic release
- Bumping up the version number in all places (source code, changelog, git tag, git release etc)
- Overwrite iOS icon assets with a badge on top of it (note: 10+ images due to various sizes)
- Creating a PR (Pull Request) and fill in all the details
- Uploading git release artifacts (.ipa)
- Upload signed build to the App Store ..And so forth..
I definitely missed some steps. Think of:
- Automatically running an E2E (end-to-end) test going through different screens
- Automatically creating screenshots + adding text overlays on top of screenshots
- Upload and replace existing screenshots @ App Store
And that was just 1 flavor for 1 platform. Would be nicer to have alpha, beta and prod flavors right?
Describe the solution you'd like You can see that DevOps can be frustating, and no matter what tool I end up using, it will be better than doing this manually. I've had good experience with Fastlane to deploy iOS & Android apps, so I will make that an important part of ShadyAI too.
Describe alternatives you've considered An alternative is do build everything in a Docker container, however, Docker container running MacOS is a bit.. shady.
From my understanding, emulating MacOS in Docker on non-Apple hardware is a no-go. But if you are running it on Apple hardware (e.g. Macbooks), it is allowed to run up to 2 MacOS VM's for purposes such as CI/CD (not commercially).
There's more:
- Cirrus Labs Tart - A pre-configured Flutter+MacOS VM for sillicon based Macs
- Any cloud CI/CD platform such as GitHub Actions, CodeMagic.io or CirrusCI
All the alternatives are interesting, but none of them is a direct 1:1 replacement for Fastlane. I think I should still configure Fastlane within any of the alternatives mentioned. That's why I'm starting off with Fastlane.