Configuration and compilation of the client side (Flutter)
First, we will proceed with the necessary updates for both the Android and iOS apps. After completing the updates, we will then connect the configured apps to Firebase in order to utilize their Free Phone Authentication service.
To begin, we need to create release keystores for signing the APKs or aab bundles. You can use the command provided below, replacing [key_alias_name] with the desired alias name of your choice:
keytool -genkey -v -keystore keystore.jks -alias [your_alias_name] -keyalg RSA -keysize 2048 -validity 10000
Ensure you have copied this file to the driver's and rider's app folders. Then, open the
key.propertiesfile located in the
androidfolder and enter the alias name and password you have chosen for the keystore in the appropriate fields.
Now, execute the following command to display the signature of both your system's debug keystore and the release keystore. Take a copy of the SHA-1 and SHA-256 values, as we will need them later.
Next, open the
build.gradlefile located in the app folder. Inside this file, you will find the line that specifies the
applicationId. Update this line to match the application identifier of your own brand.
main.java.srcDirs += 'src/main/kotlin'
// TODO: Specify your own unique Application ID
- applicationId com.ridy.taxi.rider
+ applicationId com.yourCompanyName.taxi.driver
Next, we will do the same for iOS apps. Please open the
Runner.xcworkspacein either rider-app/driver-app's ios folder. Next click on the Runner project in the left panel so the project settings would appear. Then under the Signing and Capabilities tab, you can change the bundle identifier:
You can now head to the Firebase console and create a Flutter Firebase app.
First, you need to install the Firebase CLI. After that, you'll need to log in to your Firebase account using the CLI. Additionally, make sure to install the flutterfire CLI tool. If you already don't have these standard tools installed, follow the guidelines provided by Firebase during the Flutter app creation wizard.
Once you have installed those tools, Firebase will prompt you to connect your apps to the Firebase project. This process is seamless and can be accomplished by executing a command similar to the one provided below by Firebase:
flutterfire configure --project=something
When you run this command, you will be presented with the option to configure which apps you want to connect with Firebase. You can uncheck the macOS version since its support is not currently maintained.
Now, navigate to the Firebase console, where you will notice that Flutterfire has automatically created the necessary Android and iOS apps for you. For both the driver and rider applications created by Firebase, make sure to provide both the previously saved SHA-1 and SHA-256 values. This step is essential for Firebase to verify and accept your verification requests.
Open the Runner workspaces for both the rider's and driver's iOS applications. Locate the
GoogleService-Info.plistfile within each workspace. Find the row labeled
REVERSE_CLIENT_IDinside this file and copy its corresponding value.
Next, open the
Info.plistfile and navigate to URL Types -> Item 0 (Firebase) -> URL Schemes -> Item 0. Paste the copied value from the
REVERSE_CLIENT_IDrow as the new value in this location.
In order for the apps to communicate with your server's backend, you need to modify the
config.dartfile in the client-shared project. Open the file and locate the variable that specifies the server IP. If you access your admin panel at
18.104.22.168:4003, remove the
:4003part and update the variable's value accordingly. Here's an example of how to edit the variable:
- String serverIP = "x.x.x.x";
+ String serverIP = "22.214.171.124";
With the above steps completed, you can now compile either the driver or rider app using Flutter's standard build commands.
// Build with debug keystore
flutter build apk
flutter build appbundle
// Build with release keystore
flutter build apk --release
flutter build appbundle --release
flutter build ipa