Commandline scripts for building customized Dokan App for a marketplace. These scripts can only be run on a Linux or Mac OS machine.
Quick Links: Dependencies | Installation | Usage | Android | iOS | Subsequent Configuration | Subsequent Build
Before using these scripts, a development environment needs to be configured for building a React Native app in your Machine/Server. See "React Native CLI Quickstart" section in React Native's Official Doc
Additionally, the following tools need to be installed in your system
Run this command in your terminal to install the build scripts.
wget -O - https://raw.githubusercontent.com/weDevsOfficial/dokan-app-build-script/master/setup.sh | bash
Test your installation by running any of config-android, build-android or config-ios commands
In your termial create a new directory like mkdir "My Projects" and cd into it or cd the directory where you want to save your projects. For convenience create an assets directory there and put the app icon and splash image inside the assets directory. It will be useful later on.
In two steps you can generate an Android App Bundle. This is the new(and recommended) way of uploading android apps to Google Play Store. At first run config-android
It will list the parameters that are needed to be supplied with the command. The list is self explanatory.
Now run the command as follows, replacing the placeholder values with the actual ones
config-android \
--app-name=MyApp \
--package-name=com.exmaple.app \
--site-url=https://example.com \
--wc-key=somekey \
--wc-secret=somesecret \
--fb-app-id=facebookappid \
--google-geo-key=googlemapapikey \
--stripe-pk=stripePublishableKey \
--one-signal-id=oneSignalAppID \
--launcher-icon=absolute/path/to/laucnher.png \
--splash-image=absolute/path/to/splash.pngIf there is spacing in the app name, surround the app name with double qoutes --app-name="My App" like this. If you have an assets directory with app icon and splash image inside, you can specify the launcher icon path and splash image path like this --launcher-icon=absoulte/path/to/assets/launcher.png and --splash-image=absoulte/path/to/assets/splash.png. Note the absolute/path/to part. Incase you want to find the absolute path of your assests directory cd into assests and then run pwd. It will print the required path.
After successful completion of the above command you will have a new Android project configured.
Now run build-android to see the list of parameters.
Now cd MyApp and run the following command. Of course replacing the placeholder values with actual ones.
build-android \
--first-name=John \
--last-name=Doe \
--city=LosAngeles \
--state=California \
--country=US \
--store-password=somepassword \
--key-password=somepasswordThis will perform the code signing of the app and generate an app.aab inside MyApp/android/app/build/outputs/bundle/release/ directory. Your new app has been built and is ready to be uploaded to Google Play Store.
iOS configuration script is almost same as Android except the --google-geo-key option is not required here. Run 'config-ios' to see the list of parameters.
Run the following command as follows
config-ios \
--app-name=MyApp \
--package-name=com.exmaple.app \
--site-url=https://example.com \
--wc-key=somekey \
--wc-secret=somesecret \
--fb-app-id=facebookappid \
--stripe-pk=stripePublishableKey \
--one-signal-id=oneSignalAppID \
--launcher-icon=path/to/laucnher.png \
--splash-image=path/to/splash.pngThis will download, create and configure a new iOS project. If there is already an existing project created for Android, this command will just configure the iOS project for you without downloading and creating a new one.
Note config-android and config-ios both commands are kind of complementary to each other. If you have configured for Android before, config-ios will configure the iOS project without creating a new one and vice versa. All you need to do, is to be in the same directory level where the project exists.
Creating and configuring a new project takes a significant amount of time. It may happen that you have passed wrong values to the arguments of config-android or config-ios command and configured the Android or iOS project. You can revert this by using the --update argument for both config-android and config-ios commands without creating a new project.
For example, you have created an Android project where the --site-url was wrong. To change this run the config-android command like this
config-android --app-name=MyApp --site-url=newSiteUrl --update=siteUrlNotice --update=siteUrl part. This will update the wrong --site-url with the correct ones.
You can also update multiple values at once. Assuming you want to correct the --site-url and --fb-app-id for Android, run config-android like below
config-android --app-name=MyApp --site-url=newSiteUrl --fb-app-id=newfacebookappid --update=siteUrl,fbIdPass the update keys in a comma separated manner to the --update argument. Only remeber there is no space after a , and the last update key should not contain a ,. The same approach applies to config-ios command.
Below is the list of available update keys
| Update Keys | Function | Android | iOS |
|---|---|---|---|
| siteUrl | Updates site url | √ | √ |
| wcKeys | Updates WooCommerce consumer key or consumer secret or both | √ | √ |
| fbId | Updates Facebook App Id | √ | √ |
| geoKey | Updates Gogole Map API key | √ | X |
| stripePk | Updates Stripe Publishable Key | √ | √ |
| oneSingalId | Updates OneSignal App ID | √ | √ |
| iconSet | Generates new icon set from the updated path | √ | √ |
| splashSet | Generates new splash image set from the updated path | √ | √ |
Note: The --app-name argument is mandatory when you are trying to update. The wcKeys update key can update only --wc-key or only --wc-secret or both. For example
config-android --app-name=MyApp --wc-key=newKey --update=wcKeysThis will only update the WooCommerce consumer key
Or
config-android --app-name=MyApp --wc-secret=newSecret --update=wcKeysThis will only update the WooCommerce consumer secret
And
config-android --app-name=MyApp --wc-key=newKey --wc-secret=newSecret --update=wcKeysThis will update both WooCommerce consumer key and secret.
When an existing Android or iOS project is subsequently configured, it must be built again.
To do this for Android, first cd into your project. In our example case cd MyApp. Then run build-android --update. It will generate the updated .aab for your app.


