Botiga eCommerce Platform hosts 2 mobile apps:
- A Customer app (this one)
- A Merchant app
These apps essentially covers the 2 aspects of marketplace - supply & demand
flutter pub run build_runner build --delete-conflicting-outputs
-
Custom icons added using Flutter Icon Generator.
- If you face unexpected build or link issues like
Undefined symbols for architecture x86_64, do a clean build with the following:
cd ios
pod deintegrate && pod cache clean --all
rm -rf ~/Library/Developer/Xcode/DerivedData
cd ..
flutter clean && \
rm pubspec.lock && \
rm ios/Podfile.lock && \
rm -Rf ios/Pods && \
rm -Rf ios/.symlinks && \
rm -Rf ios/Flutter/Flutter.framework && \
rm -Rf ios/Flutter/Flutter.podspec && \
rm -Rf ios/Runner.xcworkspace
flutter pub get
cd ios
pod install
flutter run --flavor dev
-
Flutter app version follows format
<version>+<buildNumber>e.g. 0.2.1+2 -
versionupdate mandatory for apple appstore -
buildNumberupdate mandatory for playstore. Increment by 1 for every release -
In short, change both version & build number before pushing to appstore & playstore
- Firebase app distribution would be used for testing apps
- It should be done via
botiga-devproject - Select appropriate
appinfirebase consolefor testing & upload your version there - Send the email to all testers & notify them
- Create an apk version:
flutter build apk --flavor dev --release
- Upload it
- First, create an ios app version:
flutter build ios --flavor dev --release --bundle-sksl-path flutter_01.sksl.json
-
Once app is built, archieve it as explaind here
-
Once archieve is done, it will open distribution organizer
-
Use it to build an
Ad-hocdistribution archieve. Once finished,distribution archieve - ipawill be exported at the path of your choice. -
Upload the ipa
- Create an obfuscated appbundle version for sharing with command:
Update the Imagespec version in Xcode before building to App Version
flutter build appbundle --obfuscate --split-debug-info=/Users/varunmehta/Projects/botiga/symbols/botigaApp_1.1.1+6 --flavor prod --release
botigaApp_<version>Version here should match one in pubspec.yaml
The reason to use appbundle has been detailed in article.
- Create an obfuscated appbundle version for sharing with command:
flutter build ios --obfuscate --split-debug-info=/Users/varunmehta/Projects/botiga/symbols/botigaApp_3.0.3+27 --flavor prod --release
-
botigaApp_<version>Version here should match one in pubspec.yaml -
Once app is built, archieve it as explaind here
-
Once archieve is done, it will open distribution organizer