Giter Club home page Giter Club logo

buildozer's Introduction

Buildozer

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.

buildozer's People

Contributors

tito avatar kived avatar akshayaurora avatar inclement avatar lilyfoote avatar tshirtman avatar dessant avatar brousch avatar bob-the-hamster avatar cbenhagen avatar fabiankreutz avatar attakei avatar pastcompute avatar jabbalaci avatar dvenkatsagar avatar techtonik avatar pohmelie avatar roskakori avatar nickyspag avatar udiboy1209 avatar chozabu avatar codemaxx avatar alanjds avatar droundy avatar denys-duchier avatar feralbytes avatar excessivedemon avatar manuelbua avatar pythonic64 avatar zen-code avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.