All Projects → kivy → Buildozer

kivy / Buildozer

Licence: mit
Generic Python packager for Android and iOS

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Buildozer

Mason
Cross platform package manager for C/C++ apps
Stars: ✭ 230 (-79.3%)
Mutual labels:  packaging, osx
Syncthing Macos
Frugal and native macOS Syncthing application bundle
Stars: ✭ 1,096 (-1.35%)
Mutual labels:  osx
Dmidecode Osx
An OS X native port of dmidecode
Stars: ✭ 44 (-96.04%)
Mutual labels:  osx
Linessorter Xcode Extension
Xcode Extension that helps you keep your import statements and long code lists organized and uniform
Stars: ✭ 54 (-95.14%)
Mutual labels:  osx
Touchbar Systemmonitor
A better simple reactive system monitor on macOS for your MacBook pro. Built with Electron.
Stars: ✭ 45 (-95.95%)
Mutual labels:  osx
Cmd
A simple package to execute shell commands on linux, windows and osx
Stars: ✭ 56 (-94.96%)
Mutual labels:  osx
Cryptojs.swift
Cross-platform cryptographic functions in swift
Stars: ✭ 42 (-96.22%)
Mutual labels:  osx
Cmake Get
Get dependencies with cmake
Stars: ✭ 59 (-94.69%)
Mutual labels:  osx
Gitee
Gitee, OS X status bar application for Github
Stars: ✭ 1,095 (-1.44%)
Mutual labels:  osx
Homebrew Pothos
Homebrew formulas for Pothos and SoapySDR
Stars: ✭ 52 (-95.32%)
Mutual labels:  osx
Mas
📦 Mac App Store command line interface
Stars: ✭ 8,603 (+674.35%)
Mutual labels:  osx
Xhyve
Use xhyve from Go (OS X only)
Stars: ✭ 45 (-95.95%)
Mutual labels:  osx
Ansible Osx Command Line Tools
An Ansible role for installing OS X Command Line Tools
Stars: ✭ 57 (-94.87%)
Mutual labels:  osx
Dogen
Reference implementation of the MASD Code Generator.
Stars: ✭ 44 (-96.04%)
Mutual labels:  osx
Wkzombie
WKZombie is a Swift framework for iOS/OSX to navigate within websites and collect data without the need of User Interface or API, also known as Headless browser. It can be used to run automated tests / snapshots and manipulate websites using Javascript.
Stars: ✭ 1,105 (-0.54%)
Mutual labels:  osx
Enlighten
💡 An integrated spotlight-based onboarding and help library for macOS, written in Swift.
Stars: ✭ 44 (-96.04%)
Mutual labels:  osx
Wwdc
The unofficial WWDC app for macOS
Stars: ✭ 8,137 (+632.4%)
Mutual labels:  osx
Awesome Osx
📦 Awesome stuff for OSX
Stars: ✭ 54 (-95.14%)
Mutual labels:  osx
Saml2aws
CLI tool which enables you to login and retrieve AWS temporary credentials using a SAML IDP
Stars: ✭ 1,109 (-0.18%)
Mutual labels:  osx
Dnscrypt Menu
Manage DNSCrypt from the macOS menu bar (BitBar plugin)
Stars: ✭ 59 (-94.69%)
Mutual labels:  osx

Buildozer

Tests Android iOS Coverage Status 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. Note that only Python 3 is supported.

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)
    # if you use a virtualenv, don't use the `--user` option
    pip install --user buildozer
    
    # latest dev version
    # if you use a virtualenv, don't use the `--user` option
    pip install --user 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
    pip install -e .
    
  • Check buildozer is in your path

    `which buildozer`
    # if there is no result, and you installed with --user, add this line at the end of your `~/.bashrc` file.
    export PATH=~/.local/bin/:$PATH
    # and then run
    . ~/.bashrc
    
  • Go into your application directory and run:

    buildozer init
    # edit the buildozer.spec, then
    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
    

Buildozer GitHub action

Use ArtemSBulgakov/[email protected] to build your packages automatically on push or pull request. See full workflow example.

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 an 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:

Discord channel:

Server : https://chat.kivy.org Channel : #support

For debugging on Android, don't hesitate to use ADB to get logs of your application.

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]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].