6
Build and publish a custom app
Kelson edited this page 2017-06-27 08:05:21 +02:00

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

Python 3

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.