Upgrade to a New Version
Take a new Zipkart release without losing your settings, data or own changes.
Your products, orders, settings and texts live in Firebase, so an upgrade never touches them. You only update the code, then redeploy the backend with the new setup tool.
Before you start
- Zip your whole project folder as a backup.
- Read the Changelog for the new version.
- If you can, try the new version on a test Firebase project first.
Keep your own files#
Never overwrite these with the files from a new release:
| File (in each app folder) | Holds |
|---|---|
lib/firebase_options.dart |
Your Firebase project |
android/app/google-services.json, ios/Runner/GoogleService-Info.plist |
Firebase config for Android and iOS |
android/local.properties, ios/Flutter/Secrets.xcconfig |
Your Google Maps key |
android/key.properties and your .jks |
Android release signing |
web/firebase-messaging-sw.js |
Your web push config |
ios/Runner/Info.plist |
Your sign-in values and permission texts |
Also keep your app icons, names and package names.
Update the code#
- Commit your current project to
mainin GitHub Desktop or Git. - Create a branch named after the version, for example
v1.1.0. - Unzip the new release into a separate folder. Copy its
admin/lib,store/lib,customer/lib,driver/lib, eachpubspec.yamlandassets/,functions/(withoutnode_modules) andfirebase_setup/into your project. - Put back your own files from the table above, and commit.
- Merge the branch into
main. If there are conflicts, keep the right lines between<<<<<<<and>>>>>>>.
Use this only if you never changed the code. For each app, keep your lib/firebase_options.dart, replace the lib/ folder with the new one, put the file back, and copy the new pubspec.yaml and assets/. Then replace functions/ and firebase_setup/.
Redeploy and rebuild#
Run the new setup tool#
Start the new firebase_setup tool with a fresh service account key and keep the mode Only add documents that don't exist yet. It updates the rules, indexes and Cloud Functions, and adds any new starter settings without touching your data.
Refresh each app#
flutter clean
flutter pub get
On a Mac, also run pod install --repo-update in each ios/ folder.
Check new settings#
Open the admin panel and save any new settings pages the changelog mentions.
Rebuild and publish#
Build and test every app, then upload the new websites and submit the new app versions.
Backend first, then the apps
New app versions may need new Cloud Functions or rules. Always run the setup tool from the same release before you publish the new apps.