Fastlane is specifically designed for mobile app store submissions and has built-in tools that make it ideal for generating and uploading screenshots.
brew install fastlane
fastlane init
fastlane add_plugin screengrab # For Android
fastlane add_plugin snapshot # For iOS
For iOS (Fastfile):
platform :ios do
desc "Take screenshots"
lane :screenshots do
snapshot(
scheme: "YourAppScheme",
devices: ["iPhone 14", "iPhone 14 Pro Max", "iPad Pro (12.9-inch)"],
languages: ["en-US", "es-ES", "fr-FR"],
clear_previous_screenshots: true,
output_directory: "./fastlane/screenshots"
)
end
desc "Upload to App Store"
lane :upload_screenshots do
deliver(
screenshots_path: "./fastlane/screenshots",
skip_binary_upload: true,
skip_metadata: true,
skip_app_version_update: true
)
end
end
For Android (Fastfile):
platform :android do
desc "Take screenshots"
lane :screenshots do
screengrab(
app_apk_path: "path/to/your/app.apk",
tests_apk_path: "path/to/your/test.apk",
locales: ["en-US", "es-ES", "fr-FR"],
clear_previous_screenshots: true,
app_package_name: "com.subnext.tipcalcbillsplit",
test_instrumentation_runner: "androidx.test.runner.AndroidJUnitRunner",
output_directory: "./fastlane/screenshots"
)
end
end
# Take screenshots
fastlane ios screenshots
fastlane android screenshots
# Upload to stores
fastlane ios upload_screenshots
| Use Case | Recommended Tool | Reason |
|---|---|---|
| App Store Submissions | Fastlane | Built-in store integration and upload |
| Quick Testing Screenshots | Maestro | Faster setup, more flexible |
| CI/CD Pipelines | Fastlane | Better integration with deployment |
| Custom Interactions | Maestro | More flexible for complex flows |
| Multi-language Support | Fastlane | Native support for locales |
For your Tip Calculator app and app store submissions, Fastlane is the better choice because:
You can use both tools together for maximum efficiency:
# Use Maestro for quick iteration and testing
npm run maestro:test
# Use Fastlane for store-ready screenshots
fastlane ios screenshots
fastlane android screenshots
# Upload directly to stores
fastlane ios upload_screenshots
| Scenario | Tool | Reason |
|---|---|---|
| Quick testing | Maestro | Fast, flexible, easy setup |
| App store submission | Fastlane | Store-compliant, professional |
| Internal screenshots | Maestro | Good enough for docs/marketing |
| Production release | Fastlane | Required for store submissions |
| CI/CD automation | Fastlane | Better integration |
For your Tip Calculator app, I recommend:
This gives you the best of both worlds: fast development iteration with Maestro, and professional store-ready results with Fastlane.