Internal releases are for QA/testing after updating dependencies. These are manual builds distributed internally.
Production releases are published to Pub.dev following the full S.O.P. workflow.
Use this for generating internal builds for QA/testing.
flutter build apk --releaseOutput location: build/app/outputs/flutter-apk/app-release.apk
flutter build ipa --releaseOutput location: build/ios/ipa/
Ideal Process (Bitrise Workflow):
- Use Bitrise automated workflow for internal distribution
- Bitrise will automatically build and distribute to configured channels
Fallback Process (Manual Distribution):
- Share APK/IPA via Slack/Firebase App Distribution, Drive, or MDM tool
-
Checkout from master
git checkout master git pull origin master git checkout -b release/v{major}.{minor}.{patch} -
Apply Changes
- Update native dependencies if needed
For IOS:
cd ios pod update - Manually update version in
pubspec.yaml - Commit changes
- Update native dependencies if needed
For IOS:
-
Create PR to master
git push origin release/v{version}- Create PR from
release/v{version}→master - Verify release branch is working fine
- Wait for workflows to complete
- Create PR from
-
Merge to master
- Merge PR after all checks pass
- Pull & Test
git checkout master git pull origin master flutter run --release
- Check console for errors/warnings
-
Dry Run
flutter pub publish --dry-run
-
Publish to Pub.dev
flutter pub publish
-
Post-Release
- Verify package on pub.dev