2012-12-19 02:34:32 +01:00
Buildozer
=========
2013-03-16 02:31:39 +01:00
This tool is currently in alpha.
2012-12-19 02:34:32 +01:00
2012-12-20 01:02:57 +01:00
Buildozer is a tool for creating application packages easily.
2012-12-19 02:34:32 +01:00
2014-01-13 20:05:00 +01:00
The goal is to have one "buildozer.spec" file in your app directory, describing
2015-10-04 12:45:02 +02:00
your application requirements and settings such as title, icon, included modules
2014-01-13 20:05:00 +01:00
etc. Buildozer will use that spec to create a package for Android, iOS, Windows,
2015-10-04 12:45:02 +02:00
OSX and/or Linux.
2014-01-13 20:05:00 +01:00
2015-10-04 12:45:02 +02:00
Buildozer currently supports packaging for Android via the `python-for-android
2014-05-19 16:14:22 +02:00
<http://github.com/kivy/python-for-android/> `_
2014-01-13 20:05:00 +01:00
project, and for iOS via the kivy-ios project. Support for other operating systems
is intended in the future.
2012-12-19 02:34:32 +01:00
2015-10-04 12:45:02 +02:00
Note that this tool has nothing to do with the eponymous online build service
2014-10-27 11:51:30 +01:00
`buildozer.io <http://buildozer.io /> `_ .
2014-10-27 11:50:28 +01:00
2016-09-26 01:43:53 +02:00
Installing Buildozer with python2 support:
------------------------------------------
2012-12-19 02:34:32 +01:00
2016-09-26 01:43:53 +02:00
#. Install buildozer:
2012-12-19 17:53:58 +01:00
2016-05-09 02:23:03 +02:00
# via pip (latest stable, recommended)
sudo pip install buildozer
# latest dev version
sudo pip install https://github.com/kivy/buildozer/archive/master.zip
# git clone, for working on buildozer
2015-03-08 10:43:02 +01:00
git clone https://github.com/kivy/buildozer
2012-12-19 17:53:58 +01:00
cd buildozer
2016-05-09 02:23:03 +02:00
python setup.py build
sudo pip install -e .
2012-12-19 17:53:58 +01:00
2016-09-26 01:43:53 +02:00
#. Go into your application directory and run::
2012-12-19 02:34:32 +01:00
2012-12-19 17:53:58 +01:00
buildozer init
2012-12-19 17:35:48 +01:00
# edit the buildozer.spec, then
2016-05-09 02:23:03 +02:00
buildozer android_new debug deploy run
2012-12-19 17:35:48 +01:00
2016-09-26 01:43:53 +02:00
Installing Buildozer with python3 support:
------------------------------------------
The pip package does not yet support python3.
#. Install buildozer from source::
git clone https://github.com/kivy/buildozer
cd buildozer
python setup.py build
sudo pip install -e
#. Download and extract the crystax ndk somewhere (~/.buildozer/crystax-ndk is one option): https://www.crystax.net/en/download
#. Go into your application directory and execute::
buildozer init
#. Edit the buildozer.spec file to fit your application
#. Edit the "requirements" line of buildozer.spec so it starts with at least the following::
requirements = python3crystax,kivy
#. Edit the buildozer.spec andriod.ndk line to point to the directory where you extracted the crystax-ndk::
android.ndk_path = ~/.buildozer/crystax-ndk
#. Finally, build, deploy and run the app on your phone::
buildozer android_new debug deploy run
#. Please note the "android_new" buildozer target, and use that for any and all buildozer commands you run (even if the docs just say "android"). Python3 only works with the *android_new* toolchain.
Examples of Buildozer commands:
--------------------------------
::
2012-12-19 17:35:48 +01:00
# buildozer target command
2016-05-09 02:23:03 +02:00
buildozer android_new clean
buildozer android_new update
buildozer android_new deploy
buildozer android_new debug
buildozer android_new release
2012-12-19 17:35:48 +01:00
2012-12-20 01:04:39 +01:00
# or all in one (compile in debug, deploy on device)
2016-05-09 02:23:03 +02:00
buildozer android_new debug deploy
2012-12-19 17:35:48 +01:00
# set the default command if nothing set
2016-05-09 02:23:03 +02:00
buildozer setdefault android_new debug deploy run
2012-12-19 17:35:48 +01:00
Usage
-----
::
2016-05-09 02:23:03 +02:00
Usage:
buildozer [--profile <name>] [--verbose] [target] <command>...
buildozer --version
2012-12-19 17:35:48 +01:00
Available targets:
2016-05-09 02:23:03 +02:00
android Android target, based on python-for-android project (old toolchain)
ios iOS target, based on kivy-ios project
android_new Android target, based on python-for-android project (new toolchain)
2012-12-19 17:35:48 +01:00
Global commands (without target):
2016-05-09 02:23:03 +02:00
distclean Clean the whole Buildozer environment.
2012-12-20 01:01:19 +01:00
help Show the Buildozer help.
init Create a initial buildozer.spec in the current directory
2016-05-09 02:23:03 +02:00
serve Serve the bin directory via SimpleHTTPServer
setdefault Set the default command to run when no arguments are given
2012-12-20 01:01:19 +01:00
version Show the Buildozer version
2012-12-19 17:35:48 +01:00
Target commands:
2016-05-09 02:23:03 +02:00
clean Clean the target environment
update Update the target dependencies
debug Build the application in debug mode
release Build the application in release mode
deploy Deploy the application on the device
run Run the application on the device
serve Serve the bin directory via SimpleHTTPServer
Target "android" commands:
adb Run adb from the Android SDK. Args must come after --, or
use --alias to make an alias
logcat Show the log from the device
Target "ios" commands:
list_identities List the available identities to use for signing.
xcode Open the xcode project.
Target "android_new" commands:
adb Run adb from the Android SDK. Args must come after --, or
use --alias to make an alias
logcat Show the log from the device
p4a Run p4a commands. Args must come after --, or use --alias
to make an alias
2012-12-19 17:35:48 +01:00
2012-12-19 02:34:32 +01:00
buildozer.spec
--------------
2012-12-20 00:48:24 +01:00
See `buildozer/default.spec <https://raw.github.com/kivy/buildozer/master/buildozer/default.spec> `_ for an up-to-date spec file.
2012-12-19 17:35:48 +01:00
2014-02-16 15:22:37 +01:00
Default config
--------------
You can override the value of *any* buildozer.spec config token by
setting an appropriate environment variable. These are all of the
form `` $SECTION_TOKEN `` , where SECTION is the config file section and
TOKEN is the config token to override. Dots are replaced by
underscores.
For example, here are some config tokens from the [app] section of the
config, along with the environment variables that would override them.
- `` title `` -> `` $APP_TITLE ``
- `` package.name `` -> `` $APP_PACKAGE_NAME ``
- `` android.p4a_dir `` -> `` $APP_ANDROID_P4A_DIR ``
2015-11-03 15:42:00 +01:00
Support
-------
If you need assistance, you can ask for help on our mailing list:
* User Group : https://groups.google.com/group/kivy-users
* Email : kivy-users@googlegroups.com
We also have an IRC channel:
* Server : irc.freenode.net
* Port : 6667, 6697 (SSL only)
* Channel : #kivy
Contributing
------------
We love pull requests and discussing novel ideas. Check out our
2015-11-03 16:00:22 +01:00
`contribution guide <http://kivy.org/docs/contribute.html> `_ and
2015-11-03 15:42:00 +01:00
feel free to improve buildozer.
The following mailing list and IRC channel are used exclusively for
discussions about developing the Kivy framework and its sister projects:
* Dev Group : https://groups.google.com/group/kivy-dev
* Email : kivy-dev@googlegroups.com
IRC channel:
* Server : irc.freenode.net
* Port : 6667, 6697 (SSL only)
* Channel : #kivy-dev
License
-------
2015-11-03 16:00:22 +01:00
Buildozer is released under the terms of the MIT License. Please refer to the
LICENSE file.