Skip to main content

Generic Python packager for Android / iOS and Desktop

Project description

This tool is currently in alpha.

Buildozer is a tool for creating application packages easily.

The goal is to have one “buildozer.spec” file in your app directory, describing your application requirements and settings such as title, icon, included modules etc. Buildozer will use that spec to create a package for Android, iOS, Windows, OSX and/or Linux.

Buildozer currently supports packaging for Android via the python-for-android project, and for iOS via the kivy-ios project. Support for other operating systems is intended in the future.

Note that this tool has nothing to do with the eponymous online build service buildozer.io.

Usage example

  1. Install buildozer:

    # 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
    git clone https://github.com/kivy/buildozer
    cd buildozer
    python setup.py build
    sudo pip install -e .
  2. Go into your application directory and do:

    buildozer init
    # edit the buildozer.spec, then
    buildozer android_new debug deploy run

Example of commands:

# buildozer target command
buildozer android_new clean
buildozer android_new update
buildozer android_new deploy
buildozer android_new debug
buildozer android_new release

# or all in one (compile in debug, deploy on device)
buildozer android_new debug deploy

# set the default command if nothing set
buildozer setdefault android_new debug deploy run

Usage

Usage:
    buildozer [--profile <name>] [--verbose] [target] <command>...
    buildozer --version

Available targets:
  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)

Global commands (without target):
  distclean          Clean the whole Buildozer environment.
  help               Show the Buildozer help.
  init               Create a initial buildozer.spec in the current directory
  serve              Serve the bin directory via SimpleHTTPServer
  setdefault         Set the default command to run when no arguments are given
  version            Show the Buildozer version

Target commands:
  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

buildozer.spec

See buildozer/default.spec for an up-to-date spec file.

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

Support

If you need assistance, you can ask for help on our mailing list:

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 contribution guide and 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:

IRC channel:

  • Server : irc.freenode.net

  • Port : 6667, 6697 (SSL only)

  • Channel : #kivy-dev

License

Buildozer is released under the terms of the MIT License. Please refer to the LICENSE file.

# Change Log

## [v0.32](https://github.com/kivy/buildozer/tree/v0.32) (2016-05-09) [Full Changelog](https://github.com/kivy/buildozer/compare/v0.31…v0.32)

  • Added source.include_patterns app option

  • Added android_new target to use the python-for-android revamp toolchain

  • Added build_dir and bin_dir buildozer options

  • Stopped using pip –download-cache flag, as it has been removed from recent pip versions

  • Always use ios-deploy 1.7.0 - newer versions are completely different

  • Fix bugs with Unicode app titles

  • Fix bugs with directory handling

  • Support using a custom kivy-ios dir

  • Add adb command to android/android_new targets

  • Disable bitcode on iOS builds (needed for newer Xcode)

  • Fix api/minapi values for android target

  • Use kivy-ios to build icons for all supported sizes

  • Fix p4a branch handling

  • Let p4a handle pure-Python packages (android_new)

  • Use colored output in p4a (android_new)

## [v0.31](https://github.com/kivy/buildozer/tree/v0.31) (2016-01-07) [Full Changelog](https://github.com/kivy/buildozer/compare/0.30…v0.31)

Closed issues:

Merged pull requests:

## [0.30](https://github.com/kivy/buildozer/tree/0.30) (2015-10-04) [Full Changelog](https://github.com/kivy/buildozer/compare/v0.29…0.30)

Closed issues:

Merged pull requests:

## [v0.29](https://github.com/kivy/buildozer/tree/v0.29) (2015-06-01) [Full Changelog](https://github.com/kivy/buildozer/compare/v0.27…v0.29)

Fixed bugs:

Closed issues:

Merged pull requests:

## [v0.27](https://github.com/kivy/buildozer/tree/v0.27) (2015-03-08) [Full Changelog](https://github.com/kivy/buildozer/compare/0.26…v0.27)

Closed issues:

Merged pull requests:

## [0.26](https://github.com/kivy/buildozer/tree/0.26) (2015-01-28) [Full Changelog](https://github.com/kivy/buildozer/compare/0.25…0.26)

Merged pull requests:

## [0.25](https://github.com/kivy/buildozer/tree/0.25) (2015-01-27) [Full Changelog](https://github.com/kivy/buildozer/compare/0.24…0.25)

## [0.24](https://github.com/kivy/buildozer/tree/0.24) (2015-01-27) [Full Changelog](https://github.com/kivy/buildozer/compare/0.23…0.24)

## [0.23](https://github.com/kivy/buildozer/tree/0.23) (2015-01-27) [Full Changelog](https://github.com/kivy/buildozer/compare/0.22…0.23)

## [0.22](https://github.com/kivy/buildozer/tree/0.22) (2015-01-27) [Full Changelog](https://github.com/kivy/buildozer/compare/v0.21…0.22)

## [v0.21](https://github.com/kivy/buildozer/tree/v0.21) (2015-01-14) [Full Changelog](https://github.com/kivy/buildozer/compare/0.19…v0.21)

Merged pull requests:

## [0.19](https://github.com/kivy/buildozer/tree/0.19) (2014-12-17) [Full Changelog](https://github.com/kivy/buildozer/compare/0.18…0.19)

## [0.18](https://github.com/kivy/buildozer/tree/0.18) (2014-12-17) [Full Changelog](https://github.com/kivy/buildozer/compare/0.17…0.18)

Closed issues:

Merged pull requests:

## [0.17](https://github.com/kivy/buildozer/tree/0.17) (2014-09-22) [Full Changelog](https://github.com/kivy/buildozer/compare/0.16…0.17)

## [0.16](https://github.com/kivy/buildozer/tree/0.16) (2014-09-22) [Full Changelog](https://github.com/kivy/buildozer/compare/0.15…0.16)

Closed issues:

Merged pull requests:

## [0.15](https://github.com/kivy/buildozer/tree/0.15) (2014-06-02) [Full Changelog](https://github.com/kivy/buildozer/compare/0.14…0.15)

Closed issues:

Merged pull requests:

## [0.14](https://github.com/kivy/buildozer/tree/0.14) (2014-04-20) [Full Changelog](https://github.com/kivy/buildozer/compare/0.13…0.14)

## [0.13](https://github.com/kivy/buildozer/tree/0.13) (2014-04-20) [Full Changelog](https://github.com/kivy/buildozer/compare/0.12…0.13)

## [0.12](https://github.com/kivy/buildozer/tree/0.12) (2014-04-20) [Full Changelog](https://github.com/kivy/buildozer/compare/0.11…0.12)

## [0.11](https://github.com/kivy/buildozer/tree/0.11) (2014-04-20) [Full Changelog](https://github.com/kivy/buildozer/compare/0.10…0.11)

Closed issues:

## [0.10](https://github.com/kivy/buildozer/tree/0.10) (2014-04-09) [Full Changelog](https://github.com/kivy/buildozer/compare/0.9…0.10)

Closed issues:

Merged pull requests:

## [0.9](https://github.com/kivy/buildozer/tree/0.9) (2014-02-13) [Full Changelog](https://github.com/kivy/buildozer/compare/0.8…0.9)

Closed issues:

Merged pull requests:

## [0.8](https://github.com/kivy/buildozer/tree/0.8) (2013-10-29) [Full Changelog](https://github.com/kivy/buildozer/compare/0.7…0.8)

Fixed bugs:

Closed issues:

Merged pull requests:

## [0.7](https://github.com/kivy/buildozer/tree/0.7) (2013-09-11) [Full Changelog](https://github.com/kivy/buildozer/compare/0.2…0.7)

Closed issues:

Merged pull requests:

## [0.2](https://github.com/kivy/buildozer/tree/0.2) (2012-12-20)

* This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

buildozer-0.32.tar.gz (59.3 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page