Git Product home page Git Product logo

buildozer's Introduction

Buildozer

travis Backers on Open Collective Sponsors on Open Collective

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. iOS and OSX are still under work.

For Android, buildozer will automatically download and prepare the build dependencies. For more information, see Android-SDK-NDK-Information. We recommend targeting Python 3 on Android, but you can target both Python 3 and Python 2 regardless of which version you use with buildozer on the desktop.

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

Installing Buildozer with target Python 3 (default):

  • 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 .
    
  • Go into your application directory and run:

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

Installing Buildozer with target Python 2

  • Follow the same installation and buildozer init as Python 3

  • Make sure the following lines are in your buildozer.spec file.:

    # Changes python3 to python2
    requirements = python2,kivy
    
  • Finally, build, deploy and run the app on your phone::

    buildozer android debug deploy run
    

Installing Buildozer with target Python 3 (CrystaX, deprecated):

After following the steps above to install buildozer and generate the default spec file, you need to setup Crystax NDK as described below.

  • Download and extract the Crystax NDK somewhere (~/.buildozer/crystax-ndk is one option): https://www.crystax.net/en/download

  • Make sure the following lines are in your buildozer.spec file.:

    # Require python3crystax:
    requirements = python3crystax,kivy
    
    # Point to the directory where you extracted the crystax-ndk:
    android.ndk_path = <Your install path here.  Use ~ for home DIR>
    
  • Finally, build, deploy and run the app on your phone::

    buildozer android debug deploy run
    

Buildozer Docker image

A Dockerfile is available to use buildozer through a Docker environment.

  • Build with:

    docker build --tag=buildozer .
    
  • Run with:

    docker run --volume "$(pwd)":/home/user/hostcwd buildozer --version
    

Examples of Buildozer commands

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

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

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

Usage

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

Available targets:
    android        Android target, based on python-for-android project
    ios            iOS target, based on kivy-ios project

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 "ios" commands:
    list_identities    List the available identities to use for signing.
    xcode              Open the xcode project.

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
    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
  • p4a.source_dir -> $APP_P4A_SOURCE_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:

We also have a Discord channel:

License

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

Backers

Thank you to all our backers! ๐Ÿ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

buildozer's People

Contributors

akshayaurora avatar andremiras avatar attakei avatar bob-the-hamster avatar brentpicasso avatar brousch avatar cbenhagen avatar chozabu avatar cidermole avatar dbrnz avatar dessant avatar dvenkatsagar avatar fabiankreutz avatar hackalog avatar inclement avatar jabbalaci avatar keyweeusr avatar kived avatar lilyfoote avatar maho avatar mkg20001 avatar pastcompute avatar printathing avatar replabrobin avatar rnixx avatar techtonik avatar tito avatar tshirtman avatar zen-code avatar zingballyhoo avatar

Watchers

 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.