Skip to content

Build and publish a custom app

Kelson edited this page Jun 27, 2017 · 6 revisions

This explains how to build a "custom app" for Android (Kiwix+ZIM).

Concepts

  • Everything will be build using Travis.
  • Check your custom app meta data in the Kiwix Android git repo for custom apps.
  • You then just have to order Travis to build and publish the custom app of your choice.
  • The build process will upload all the APKs and companion file(s) for the custom app to the Android Play administration console (in the "alpha" track).

Prerequisites

python3 binary is the interpreter/runtime for the famous script language python. kiwix-build scripts being written in Python we need it to run them.

On a Debian based GNU/Linux you can install it with:

sudo apt-get install python3

If you are on macOS, you can install python3 using Homebrew:

bash /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python3

Ruby

Yes, that's boring, but you need to install tools on your computer :

Kiwix-build

Once python3 is installed, you can clone kiwix-build and ask python to install the python modules required by build_custom_app.py :

git clone https://github.com/kiwix/kiwix-build
cd kiwix-build
pip3 install -r requirements_build_custom_app.txt

Get a travis token

You will to login in travisCI and get a token to launch a build on travis

# Be sure you are in the kiwix-build directory
travis login
travis token

Let's go

You want to build a new version of a existing custom app to update the zim file ?

First get the name of the exact customapp (I can have a look here) Then, you need the url of the zim file you want to embedded with your custom app. This is probably a file here

Now, you've got everything to launch a custom app build :

./build_custom_app.py --custom-app=THE_CUSTOM_APP_TO_BUILD --zim-url=THE_URL_OF_THE_ZIM_TO_INCLUDE --travis-token=TRAVIS_TOKEN

That's all, take a coffee, compilation can take until 30 minutes to complete. Once everything is running, you should have all the apks associated to the alpha release of your application.