You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: assets/documentation/docs/ARCH_OVERVIEW.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
{app_name} project code built on Clean based hybrid Architecture (I'll just call it Clean architecture for simplicity's sake).
4
4
5
-
The main concept of regular [Clean Architecture](http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) is codes splitted to layers, where every low-level layer knows nothing about up layers, separation of business logic from UI, not depending on frameworks or libraries, etc.
5
+
The main concept of regular [Clean Architecture](http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) is codes split to layers, where every low-level layer knows nothing about up layers, separation of business logic from UI, not depending on frameworks or libraries, etc.
6
6
7
7
The architecture we used in {app_name} project is very similar to the regular Clean architecture, but it has its own values, which is why we call it Clean based quasi-architecture.
Add obfuscation params if you build application for mobile platforms:
108
103
`--obfuscate --split-debug-info=debug_info`
@@ -111,15 +106,75 @@ Next step is depending on platform:
111
106
112
107
* For iOS and MacOS open ios/macos folder of project in XCode and follow instructions How to upload app to AppStore
113
108
* For Android you'll see the location of the output file in the terminal after build finished. Follow the instruction to upload build to Play Store
114
-
* For Web - after build completed - deploy content of `/web` folder to your server
109
+
* For Web - after build completed - deploy content of `/web` folder to your server
110
+
111
+
## How to build and distribute {app_name} application using fastlane
112
+
113
+
Before you use fastlane to build and distribute:
114
+
115
+
1. Make sure you are using **ruby version 3.0 or newer**
116
+
2. Using the iOS build, call `xcode-select --install`
117
+
3. Install fastlane using `brew install fastlane` or `gem install fastlane`
118
+
4. Install the bundler using `gem install bundler`
119
+
5. Go to the `android` & `ios` directory and call `[sudo] bundle install`
120
+
121
+
To submit a build to the App Store or Google Play Console you need:
122
+
123
+
**For iOS:**
124
+
125
+
1. If the `.env.{flavor}` file is not created, create it in the `/ios/fastlane/` folder
126
+
2. Go to the Apple Developer portal and create an AppStoreConnect API key, save it, then open the file and copy the contents of that file, not including the `BEGIN PRIVATE KEY` and `END PRIVATE KEY` with dashes. Then add this key in `.env.{flavor}` to the `KEY_CONTENT` variable
127
+
3. After creating the key, copy the `ISSUER_ID`, `KEY_ID` variables and add them to `.env.{flavor}`
128
+
4. After that, add a few more variables `BUNDLE_ID`, `APPLE_DEVELOPER_USERNAME`, `APP_STORE_CONNECT_TEAM_ID`, `DEVELOPER_PORTAL_TEAM_ID`. You can find them on the Apple Developer portal and AppStore Connect
129
+
130
+
For more information on creating a AppStore Connect API key go to [Creating API Keys for App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi/creating_api_keys_for_app_store_connect_api)
131
+
132
+
**For Android:**
133
+
134
+
1. If the `.env.{flavor}` file is not created, create it in the `/android/fastlane/` folder
135
+
2. Download and save the service account key and place it in the project folder
136
+
3. Specify the relative path to the service account key by adding the `JSON_KEY_FILE` variable to `.env.{flavor}`
137
+
4. Specify the applicationId in the `PACKAGE_NAME` variable to `.env.{flavor}`
138
+
139
+
For more information on creating a service account key go to [Google Play Developer API](https://developers.google.com/android-publisher/getting_started/?hl=en) portal
140
+
141
+
To submit a build to the Firebase App Distribution you need:
142
+
143
+
1. Install Firebase CLI using `curl -sL firebase.tools | bash`
144
+
2. Sign in using the Firebase CLI `firebase login`
145
+
3. Create the `.env.{flavor}` file in `/android/fastlane/` and `/ios/fastlane/` if it was not created earlier
146
+
4. Add the `FIREBASE_APP_ID` variable to the file by specifying the `app_id`, which you can find in the Firebase Console
147
+
148
+
For more detailed information you can go to [Firebase App Distribution Android](https://firebase.google.com/docs/app-distribution/ios/distribute-fastlane) and [Firebase App Distribution iOS](https://firebase.google.com/docs/app-distribution/android/distribute-fastlane)
149
+
150
+
Now you can build and distribute the build using the Makefile command:
151
+
152
+
**For iOS:**
153
+
154
+
* TestFlight and Firebase App Distribution `make build_{flavor}_ios_with_distribution`
155
+
* Firebase App Distribution only `make build_{flavor}_ios_firebase_only`
156
+
* TestFlight only `make build_{flavor}_ios_test_flight_only`
157
+
158
+
> Make sure the correct signing method is selected in Xcode under the "Signing & Capabilities" tab, and if signing manually, the correct Provisioning Profile and Certificate are selected as well
159
+
160
+
**For Android:**
161
+
162
+
* Play Store and Firebase App Distribution `make build_{flavor}_android_with_distribution`
163
+
* Firebase App Distribution only `make build_{flavor}_android_firebase_only`
164
+
* Play Store only `make build_{flavor}_android_store_only`
165
+
166
+
> Make sure when submitting a build to the Play Store android artifact type is "aab"
167
+
> Make sure when submitting a build to the Firebase App Distribution android artifact type is "apk" (if you have not set up firebase integration with your Google Play project)
168
+
169
+
For more flexible build or distribution settings, you can change the parameters specified in `fastlane_config.yaml`
115
170
116
171
## Possible build errors
117
172
118
173
### Some files are underlined red in project file tree:
119
174
120
175
Try to run `dart pub get` command in IDE terminal
121
176
122
-
### When you build an iOS or MacOS application you might get Pod's issue.
177
+
### When you build an iOS or MacOS application you might get Pod's issue.
123
178
124
179
To fix that run following command in IDE terminal:
Copy file name to clipboardExpand all lines: assets/documentation/docs/TECH_DESCRIPTION.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,10 +5,10 @@ This file contains a description of technologies, packages and libraries used in
5
5
## Main Technologies
6
6
7
7
### Core packages
8
-
*[GetIt](https://pub.dev/packages/get_it) - service locator, used for fast and effective acces to objects
8
+
*[GetIt](https://pub.dev/packages/get_it) - service locator, used for fast and effective access to objects
9
9
*[Screen Util](https://pub.dev/packages/flutter_screenutil) - adaptive UI tools providing autoscaling UI features
10
10
*[Go Router](https://pub.dev/packages/go_router) - navigation library that complies with Flutter Navigation 2.0
11
-
*[Freezed](https://pub.dev/packages/freezed_annotation) - code generarion of data classes withh boilerplate functions
11
+
*[Freezed](https://pub.dev/packages/freezed_annotation) - code generation of data classes with boilerplate functions
12
12
13
13
### Local storage and database
14
14
@@ -26,11 +26,11 @@ This file contains a description of technologies, packages and libraries used in
26
26
27
27
### UI
28
28
29
-
*[Native Splash](https://pub.dev/packages/flutter_native_splash) - utitity to generate splash screen from yaml configuration(in `pubspec.yaml`)
29
+
*[Native Splash](https://pub.dev/packages/flutter_native_splash) - utility to generate splash screen from yaml configuration(in `pubspec.yaml`)
30
30
31
31
## Build runner
32
32
33
-
{app_name} project uses Build Runner to generate additional code. This features mostly used in **freezed** and **jsonAnnotation** utilities. So when you chaning build runner related classes you need to regenerate additional generated classes (mostly it's `*.g.dart`, `*.freezed.dart` classes).
33
+
{app_name} project uses Build Runner to generate additional code. This features mostly used in **freezed** and **jsonAnnotation** utilities. So when you changing build runner related classes you need to regenerate additional generated classes (mostly it's `*.g.dart`, `*.freezed.dart` classes).
34
34
35
35
To generate classes:
36
36
@@ -55,9 +55,11 @@ If project contains flavors and need to regenerate icons for ech flavor run:
55
55
56
56
`flutter pub run flutter_launcher_icons:main -f flutter_launcher_icons*`
57
57
58
+
{flavorizr_instructions}
59
+
58
60
## Deep links
59
61
60
-
{app_name} has a deep link features, and here describe all deeplinks options are available in the application.
62
+
{app_name} has a deep link features, and here describe all deep links options are available in the application.
Copy file name to clipboardExpand all lines: assets/documentation/docs/dev_solutions/EXAMPLE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
4
4
This section describing how Example flow works in {app_name} application.
5
-
For verifying user identity [Onfido](https://onfido.com/) library used. Onfido incapsulates all business logic about capturing user documents and send it to verify and jus return a status KYC of validation.
5
+
For verifying user identity [Onfido](https://onfido.com/) library used. Onfido incapsulate all business logic about capturing user documents and send it to verify and jus return a status KYC of validation.
UI.user_error!("Using firebase app distribution you must specify a valid FIREBASE_APP_ID in the '.env.flavor_name' file located in the fastlane directory.")
110
+
end
111
+
112
+
if !firebase_distribution['deploy_apk_only'] || (firebase_distribution['deploy_apk_only'] && artifact_type == "apk")
0 commit comments