├── MANIFEST.in ├── .gitignore ├── LICENSE ├── docs ├── source │ ├── index.rst │ ├── contribute.rst │ ├── quickstart.rst │ ├── installation.rst │ ├── specifications.rst │ └── conf.py ├── Makefile └── make.bat ├── setup.py ├── README.rst └── CHANGELOG.md /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include *COPYING 2 | include *CHANGELOG.md 3 | recursive-include buildozer *.spec 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[co] 2 | 3 | # Packages 4 | .*.swp 5 | .*.swo 6 | *.egg 7 | *.egg-info 8 | dist 9 | build 10 | eggs 11 | parts 12 | bin 13 | var 14 | sdist 15 | develop-eggs 16 | .installed.cfg 17 | .idea 18 | 19 | # Installer logs 20 | pip-log.txt 21 | 22 | # Unit test / coverage reports 23 | .coverage 24 | .tox 25 | 26 | #Translations 27 | *.mo 28 | 29 | #Mr Developer 30 | .mr.developer.cfg 31 | MANIFEST 32 | 33 | release\.log\.utf-8\.tmp 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2017 Kivy Team and other contributors 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. Buildozer documentation master file, created by 2 | sphinx-quickstart on Sun Apr 20 16:56:31 2014. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Buildozer's documentation! 7 | ===================================== 8 | 9 | Buildozer is a tool that aim to package mobiles application easily. It 10 | automates the entire build process, download the prerequisites like 11 | python-for-android, Android SDK, NDK, etc. 12 | 13 | Buildozer manage a file named `buildozer.spec` in your application directory, 14 | describing your application requirements and settings such as title, icon, 15 | included modules etc. It will use the specification file to create a package 16 | for Android, iOS, and more. 17 | 18 | Currently, Buildozer supports packaging for: 19 | 20 | - Android: via `Python for Android 21 | `_. You must have a Linux or OSX 22 | computer to be able to compile for Android. 23 | 24 | - iOS: via `Kivy iOS `_. You must have an OSX 25 | computer to be able to compile for iOS. 26 | 27 | - Supporting others platform is in the roadmap (such as .exe for Windows, .dmg 28 | for OSX, etc.) 29 | 30 | If you have any questions about Buildozer, please refer to the `Kivy's user 31 | mailing list `_. 32 | 33 | .. toctree:: 34 | :maxdepth: 2 35 | 36 | installation 37 | quickstart 38 | specifications 39 | contribute 40 | 41 | Indices and tables 42 | ================== 43 | 44 | * :ref:`genindex` 45 | * :ref:`modindex` 46 | * :ref:`search` 47 | 48 | -------------------------------------------------------------------------------- /docs/source/contribute.rst: -------------------------------------------------------------------------------- 1 | Contribute 2 | ========== 3 | 4 | 5 | Write your own recipe 6 | --------------------- 7 | 8 | A recipe allows you to compile libraries / python extension for the mobile. 9 | Most of the time, the default compilation instructions doesn't work for the 10 | target, as ARM compiler / Android NDK introduce specifities that the library 11 | you want doesn't handle correctly, and you'll need to patch. Also, because the 12 | Android platform cannot load more than 64 inline dynamic libraries, we have a 13 | mechanism to bundle all of them in one to ensure you'll not hit this 14 | limitation. 15 | 16 | To test your own recipe via Buildozer, you need to: 17 | 18 | #. Fork `Python for Android `_, and 19 | clone your own version (this will allow easy contribution later):: 20 | 21 | git clone http://github.com/YOURNAME/python-for-android 22 | 23 | #. Change your `buildozer.spec` to reference your version:: 24 | 25 | p4a.source_dir = /path/to/your/python-for-android 26 | 27 | #. Copy your recipe into `python-for-android/recipes/YOURLIB/recipe.sh` 28 | 29 | #. Rebuild. 30 | 31 | When you correctly get the compilation and your recipe works, you can ask us to 32 | include it in the python-for-android project, by issuing a Pull Request: 33 | 34 | #. Create a branch:: 35 | 36 | git checkout --track -b recipe-YOURLIB origin/master 37 | 38 | #. Add and commit:: 39 | 40 | git add python-for-android/recipes/YOURLIB/* 41 | git commit -am 'Add support for YOURLIB` 42 | 43 | #. Push to Github 44 | 45 | git push origin master 46 | 47 | #. Go to `http://github.com/YOURNAME/python-for-android`, and you should see 48 | your new branch and a button "Pull Request" on it. Use it, write a 49 | description about what you did, and Send! 50 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Buildozer 3 | ''' 4 | 5 | from setuptools import setup 6 | from os.path import dirname, join 7 | import codecs 8 | import os 9 | import re 10 | import io 11 | 12 | here = os.path.abspath(os.path.dirname(__file__)) 13 | 14 | 15 | def find_version(*file_paths): 16 | # Open in Latin-1 so that we avoid encoding errors. 17 | # Use codecs.open for Python 2 compatibility 18 | with codecs.open(os.path.join(here, *file_paths), 'r', 'utf-8') as f: 19 | version_file = f.read() 20 | 21 | # The version line must have the form 22 | # __version__ = 'ver' 23 | version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", 24 | version_file, re.M) 25 | if version_match: 26 | return version_match.group(1) 27 | raise RuntimeError("Unable to find version string.") 28 | 29 | 30 | curdir = dirname(__file__) 31 | with io.open(join(curdir, "README.rst"), encoding="utf-8") as fd: 32 | readme = fd.read() 33 | with io.open(join(curdir, "CHANGELOG.md"), encoding="utf-8") as fd: 34 | changelog = fd.read() 35 | 36 | setup( 37 | name='buildozer', 38 | version=find_version('buildozer', '__init__.py'), 39 | description='Generic Python packager for Android / iOS and Desktop', 40 | long_description=readme + "\n\n" + changelog, 41 | author='Mathieu Virbel', 42 | author_email='mat@kivy.org', 43 | url='http://github.com/kivy/buildozer', 44 | license='MIT', 45 | packages=[ 46 | 'buildozer', 'buildozer.targets', 'buildozer.libs', 'buildozer.scripts' 47 | ], 48 | package_data={'buildozer': ['default.spec']}, 49 | include_package_data=True, 50 | install_requires=['pexpect', 'virtualenv'], 51 | classifiers=[ 52 | 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 53 | 'Topic :: Software Development :: Build Tools', 54 | 'Programming Language :: Python :: 2', 55 | 'Programming Language :: Python :: 2.7', 56 | 'Programming Language :: Python :: 3', 57 | 'Programming Language :: Python :: 3.1', 58 | 'Programming Language :: Python :: 3.2', 59 | 'Programming Language :: Python :: 3.3', 60 | 'Programming Language :: Python :: 3.4', 61 | 'Programming Language :: Python :: 3.5' 62 | ], 63 | entry_points={ 64 | 'console_scripts': [ 65 | 'buildozer=buildozer.scripts.client:main', 66 | 'buildozer-remote=buildozer.scripts.remote:main' 67 | ] 68 | }) 69 | -------------------------------------------------------------------------------- /docs/source/quickstart.rst: -------------------------------------------------------------------------------- 1 | Quickstart 2 | ========== 3 | 4 | Let's get started with Buildozer! 5 | 6 | Init and build for Android 7 | -------------------------- 8 | 9 | #. Buildozer will try to guess the version of your application, by searching a 10 | line like `__version__ = "1.0.3"` in your `main.py`. Ensure you have one at 11 | the start of your application. It is not mandatory but heavilly advised. 12 | 13 | #. Create a `buildozer.spec` file, with:: 14 | 15 | buildozer init 16 | 17 | #. Edit the `buildozer.spec` according to the :ref:`specifications`. You should 18 | at least change the `title`, `package.name` and `package.domain` in the 19 | `[app]` section. 20 | 21 | #. Start a Android/debug build with:: 22 | 23 | buildozer -v android debug 24 | 25 | #. Now it's time for a coffee / tea, or a dinner if you have a slow computer. 26 | The first build will be slow, as it will download the Android SDK, NDK, and 27 | others tools needed for the compilation. 28 | Don't worry, thoses files will be saved in a global directory and will be 29 | shared accross the different project you'll manage with Buildozer. 30 | 31 | #. At the end, you should have an APK file in the `bin/` directory. 32 | 33 | 34 | Run my application 35 | ------------------ 36 | 37 | Buildozer is able to deploy the application on your mobile, run it, and even 38 | get back the log into the console. It will work only if you already compiled 39 | your application at least once:: 40 | 41 | buildozer android deploy run logcat 42 | 43 | For iOS, it would look the same:: 44 | 45 | buildozer ios deploy run 46 | 47 | You can combine the compilation with the deployment:: 48 | 49 | buildozer -v android debug deploy run logcat 50 | 51 | You can also set this line at the default command to do if Buildozer is started 52 | without any arguments:: 53 | 54 | buildozer setdefault android debug deploy run logcat 55 | 56 | # now just type buildozer, and it will do the default command 57 | buildozer 58 | 59 | To save the logcat output into a file named `my_log.txt` (the file will appear in your current directory):: 60 | 61 | buildozer -v android debug deploy run logcat > my_log.txt 62 | 63 | Install on non-connected devices 64 | -------------------------------- 65 | 66 | If you have compiled a package, and want to share it easily with others 67 | devices, you might be interested with the `serve` command. It will serve the 68 | `bin/` directory over HTTP. Then you just have to access to the URL showed in 69 | the console from your mobile:: 70 | 71 | buildozer serve 72 | 73 | -------------------------------------------------------------------------------- /docs/source/installation.rst: -------------------------------------------------------------------------------- 1 | Installation 2 | ============ 3 | 4 | Buildozer itself doesn't depend on any library, and works on Python 2.7 and >= 5 | 3.3. Depending the platform you want to target, you might need more tools 6 | installed. Buildozer tries to give you hints or tries to install few things for 7 | you, but it doesn't cover every situation. 8 | 9 | First, install the buildozer project with:: 10 | 11 | pip install --upgrade buildozer 12 | 13 | Targeting Android 14 | ----------------- 15 | 16 | If you target Android, you must install at least Cython, few build libs, and a 17 | Java SDK. Some binaries of the Android SDK are still in 32 bits, so you need 18 | few 32bits libraries available: 19 | 20 | Android on Ubuntu 16.04 (64bit) 21 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22 | 23 | :: 24 | 25 | sudo pip install --upgrade cython==0.21 26 | sudo dpkg --add-architecture i386 27 | sudo apt-get update 28 | sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev openjdk-8-jdk unzip zlib1g-dev zlib1g:i386 29 | 30 | Android on Ubuntu 15.10 (64bit) 31 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 32 | 33 | :: 34 | 35 | sudo pip install --upgrade cython==0.21 36 | sudo dpkg --add-architecture i386 37 | sudo apt-get update 38 | sudo apt-get install build-essential ccache git libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 python2.7 python2.7-dev openjdk-7-jdk unzip zlib1g-dev zlib1g:i386 39 | 40 | Android on Ubuntu 14.10 (64bit) 41 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | 43 | :: 44 | 45 | sudo pip install --upgrade cython==0.21 46 | sudo dpkg --add-architecture i386 47 | sudo apt-get update 48 | sudo apt-get install build-essential ccache git lib32stdc++6 lib32z1 lib32z1-dev python2.7 python2.7-dev openjdk-7-jdk unzip zlib1g-dev zlib1g:i386 49 | 50 | Android on Ubuntu 13.10 (64bit) 51 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52 | 53 | :: 54 | 55 | sudo pip install --upgrade cython==0.21 56 | sudo dpkg --add-architecture i386 57 | sudo apt-get update 58 | sudo apt-get install build-essential ccache git lib32z1 lib32bz2-1.0 libncurses5:i386 libstdc++6:i386 python2.7 python2.7-dev openjdk-7-jdk unzip zlib1g-dev zlib1g:i386 59 | 60 | Android on Ubuntu 12.04 (64bit) 61 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 | 63 | :: 64 | 65 | sudo pip install --upgrade cython==0.21 66 | sudo apt-get install build-essential ccache git lib32z1 lib32bz2-1.0 libncurses5:i386 libstdc++6:i386 python2.7 python2.7-dev openjdk-7-jdk unzip zlib1g-dev zlib1g:i386 67 | -------------------------------------------------------------------------------- /docs/source/specifications.rst: -------------------------------------------------------------------------------- 1 | Specifications 2 | ============== 3 | 4 | This document explains in detail all the configuration tokens you can use in 5 | `buildozer.spec`. 6 | 7 | Section [app] 8 | ------------- 9 | 10 | - `title`: String, title of your application. 11 | 12 | It might be possible that some characters are not working depending on the 13 | targeted platform. It's best to try and see if everything works as expected. 14 | Try to avoid too long titles, as they will also not fit in the title 15 | displayed under the icon. 16 | 17 | - `package.name`: String, package name. 18 | 19 | The Package name is one word with only ASCII characters and/or numbers. It 20 | should not contain any special characters. For example, if your application 21 | is named `Flat Jewels`, the package name can be `flatjewels`. 22 | 23 | - `package.domain`: String, package domain. 24 | 25 | Package domain is a string that references the company or individual that 26 | did the app. Both domain+name will become your application identifier for 27 | Android and iOS, choose it carefully. As an example, when the Kivy`s team 28 | is publishing an application, the domain starts with `org.kivy`. 29 | 30 | - `source.dir`: String, location of your application sources. 31 | 32 | The location must be a directory that contains a `main.py` file. It defaults 33 | to the directory where `buildozer.spec` is. 34 | 35 | - `source.include_exts`: List, file extensions to include. 36 | 37 | By default, not all files in your `source.dir` are included, but only some 38 | of them (`py,png,jpg,kv,atlas`), depending on the extension. Feel free to 39 | add your own extensions, or use an empty value if you want to include 40 | everything. 41 | 42 | - `source.exclude_exts`: List, file extensions to exclude. 43 | 44 | In contrary to `source.include_exts`, you could include all the files you 45 | want except the ones that end with an extension listed in this token. If 46 | empty, no files will be excluded based on their extensions. 47 | 48 | - `source.exclude_dirs`: List, directories to exclude. 49 | 50 | Same as `source.exclude_exts`, but for directories. You can exclude your 51 | `tests` and `bin` directory with:: 52 | 53 | source.exclude_dirs = tests, bin 54 | 55 | - `source.exclude_patterns`: List, files to exclude if they match a pattern. 56 | 57 | If you have a more complex application layout, you might need a pattern to 58 | exclude files. It also works if you don't have a pattern. For example:: 59 | 60 | source.exclude_patterns = license,images/originals/* 61 | 62 | - `version.regex`: Regex, Regular expression to capture the version in 63 | `version.filename`. 64 | 65 | The default capture method of your application version is by grepping a line 66 | like this:: 67 | 68 | __version__ = "1.0" 69 | 70 | The `1.0` will be used as a version. 71 | 72 | - `version.filename`: String, defaults to the main.py. 73 | 74 | File to use for capturing the version with `version.regex`. 75 | 76 | - `version`: String, manual application version. 77 | 78 | If you don't want to capture the version, comment out both `version.regex` 79 | and `version.filename`, then put the version you want directly in the 80 | `version` token:: 81 | 82 | # version.regex = 83 | # version.filename = 84 | version = 1.0 85 | 86 | - `requirements`: List, Python modules or extensions that your application 87 | requires. 88 | 89 | The requirements can be either a name of a recipe in the Python-for-android 90 | project, or a pure-Python package. For example, if your application requires 91 | Kivy and requests, you need to write:: 92 | 93 | requirements = kivy,requests 94 | 95 | If your application tries to install a Python extension (ie, a Python 96 | package that requires compilation), and the extension doesn't have a recipe 97 | associated to Python-for-android, it will not work. We explicitly disable 98 | the compilation here. If you want to make it work, contribute to the 99 | Python-for-android project by creating a recipe. See :doc:`contribute`. 100 | 101 | - `garden_requirements`: List, Garden packages to include. 102 | 103 | Add here the list of Kivy's garden packages to include. For example:: 104 | 105 | garden_requirements = graph 106 | 107 | Please note that if it doesn't work, it might be because of the garden 108 | package itself. Refer to the author of the package if he already tested 109 | it on your target platform, not us. 110 | 111 | - `presplash.filename`: String, loading screen of your application. 112 | 113 | Presplash is the image shown on the device during application loading. 114 | It is called presplash on Android, and Loading image on iOS. The image might 115 | have different requirements depending the platform. Currently, Buildozer 116 | works well only with Android, iOS support is not great on this. 117 | 118 | The image must be a JPG or PNG, preferable with Power-of-two size, e.g., a 119 | 512x512 image is perfect to target all the devices. The image is not fitted, 120 | scaled, or anything on the device. If you provide a too-large image, it might 121 | not fit on small screens. 122 | 123 | - `icon.filename`: String, icon of your application. 124 | 125 | The icon of your application. It must be a PNG of 512x512 size to be able to 126 | cover all the various platform requirements. 127 | 128 | - `orientation`: String, orientation of the application. 129 | 130 | Indicate the orientation that your application supports. Defaults to 131 | `landscape`, but can be changed to `portrait` or `all`. 132 | 133 | - `fullscreen`: Boolean, fullscreen mode. 134 | 135 | Defaults to true, your application will run in fullscreen. Means the status 136 | bar will be hidden. If you want to let the user access the status bar, 137 | hour, notifications, use 0 as a value. 138 | 139 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = build 9 | 10 | # User-friendly check for sphinx-build 11 | ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) 12 | $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) 13 | endif 14 | 15 | # Internal variables. 16 | PAPEROPT_a4 = -D latex_paper_size=a4 17 | PAPEROPT_letter = -D latex_paper_size=letter 18 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 19 | # the i18n builder cannot share the environment and doctrees with the others 20 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source 21 | 22 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext 23 | 24 | help: 25 | @echo "Please use \`make ' where is one of" 26 | @echo " html to make standalone HTML files" 27 | @echo " dirhtml to make HTML files named index.html in directories" 28 | @echo " singlehtml to make a single large HTML file" 29 | @echo " pickle to make pickle files" 30 | @echo " json to make JSON files" 31 | @echo " htmlhelp to make HTML files and a HTML help project" 32 | @echo " qthelp to make HTML files and a qthelp project" 33 | @echo " devhelp to make HTML files and a Devhelp project" 34 | @echo " epub to make an epub" 35 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 36 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 37 | @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" 38 | @echo " text to make text files" 39 | @echo " man to make manual pages" 40 | @echo " texinfo to make Texinfo files" 41 | @echo " info to make Texinfo files and run them through makeinfo" 42 | @echo " gettext to make PO message catalogs" 43 | @echo " changes to make an overview of all changed/added/deprecated items" 44 | @echo " xml to make Docutils-native XML files" 45 | @echo " pseudoxml to make pseudoxml-XML files for display purposes" 46 | @echo " linkcheck to check all external links for integrity" 47 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 48 | 49 | clean: 50 | rm -rf $(BUILDDIR)/* 51 | 52 | html: 53 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 54 | @echo 55 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 56 | 57 | dirhtml: 58 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 59 | @echo 60 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 61 | 62 | singlehtml: 63 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 64 | @echo 65 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 66 | 67 | pickle: 68 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 69 | @echo 70 | @echo "Build finished; now you can process the pickle files." 71 | 72 | json: 73 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 74 | @echo 75 | @echo "Build finished; now you can process the JSON files." 76 | 77 | htmlhelp: 78 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 79 | @echo 80 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 81 | ".hhp project file in $(BUILDDIR)/htmlhelp." 82 | 83 | qthelp: 84 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 85 | @echo 86 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 87 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 88 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Buildozer.qhcp" 89 | @echo "To view the help file:" 90 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Buildozer.qhc" 91 | 92 | devhelp: 93 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 94 | @echo 95 | @echo "Build finished." 96 | @echo "To view the help file:" 97 | @echo "# mkdir -p $$HOME/.local/share/devhelp/Buildozer" 98 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Buildozer" 99 | @echo "# devhelp" 100 | 101 | epub: 102 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 103 | @echo 104 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 105 | 106 | latex: 107 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 108 | @echo 109 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 110 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 111 | "(use \`make latexpdf' here to do that automatically)." 112 | 113 | latexpdf: 114 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 115 | @echo "Running LaTeX files through pdflatex..." 116 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 117 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 118 | 119 | latexpdfja: 120 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 121 | @echo "Running LaTeX files through platex and dvipdfmx..." 122 | $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja 123 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 124 | 125 | text: 126 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 127 | @echo 128 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 129 | 130 | man: 131 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 132 | @echo 133 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 134 | 135 | texinfo: 136 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 137 | @echo 138 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 139 | @echo "Run \`make' in that directory to run these through makeinfo" \ 140 | "(use \`make info' here to do that automatically)." 141 | 142 | info: 143 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 144 | @echo "Running Texinfo files through makeinfo..." 145 | make -C $(BUILDDIR)/texinfo info 146 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 147 | 148 | gettext: 149 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 150 | @echo 151 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 152 | 153 | changes: 154 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 155 | @echo 156 | @echo "The overview file is in $(BUILDDIR)/changes." 157 | 158 | linkcheck: 159 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 160 | @echo 161 | @echo "Link check complete; look for any errors in the above output " \ 162 | "or in $(BUILDDIR)/linkcheck/output.txt." 163 | 164 | doctest: 165 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 166 | @echo "Testing of doctests in the sources finished, look at the " \ 167 | "results in $(BUILDDIR)/doctest/output.txt." 168 | 169 | xml: 170 | $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml 171 | @echo 172 | @echo "Build finished. The XML files are in $(BUILDDIR)/xml." 173 | 174 | pseudoxml: 175 | $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml 176 | @echo 177 | @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." 178 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Command file for Sphinx documentation 4 | 5 | if "%SPHINXBUILD%" == "" ( 6 | set SPHINXBUILD=sphinx-build 7 | ) 8 | set BUILDDIR=build 9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source 10 | set I18NSPHINXOPTS=%SPHINXOPTS% source 11 | if NOT "%PAPER%" == "" ( 12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% 14 | ) 15 | 16 | if "%1" == "" goto help 17 | 18 | if "%1" == "help" ( 19 | :help 20 | echo.Please use `make ^` where ^ is one of 21 | echo. html to make standalone HTML files 22 | echo. dirhtml to make HTML files named index.html in directories 23 | echo. singlehtml to make a single large HTML file 24 | echo. pickle to make pickle files 25 | echo. json to make JSON files 26 | echo. htmlhelp to make HTML files and a HTML help project 27 | echo. qthelp to make HTML files and a qthelp project 28 | echo. devhelp to make HTML files and a Devhelp project 29 | echo. epub to make an epub 30 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 31 | echo. text to make text files 32 | echo. man to make manual pages 33 | echo. texinfo to make Texinfo files 34 | echo. gettext to make PO message catalogs 35 | echo. changes to make an overview over all changed/added/deprecated items 36 | echo. xml to make Docutils-native XML files 37 | echo. pseudoxml to make pseudoxml-XML files for display purposes 38 | echo. linkcheck to check all external links for integrity 39 | echo. doctest to run all doctests embedded in the documentation if enabled 40 | goto end 41 | ) 42 | 43 | if "%1" == "clean" ( 44 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 45 | del /q /s %BUILDDIR%\* 46 | goto end 47 | ) 48 | 49 | 50 | %SPHINXBUILD% 2> nul 51 | if errorlevel 9009 ( 52 | echo. 53 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 54 | echo.installed, then set the SPHINXBUILD environment variable to point 55 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 56 | echo.may add the Sphinx directory to PATH. 57 | echo. 58 | echo.If you don't have Sphinx installed, grab it from 59 | echo.http://sphinx-doc.org/ 60 | exit /b 1 61 | ) 62 | 63 | if "%1" == "html" ( 64 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 65 | if errorlevel 1 exit /b 1 66 | echo. 67 | echo.Build finished. The HTML pages are in %BUILDDIR%/html. 68 | goto end 69 | ) 70 | 71 | if "%1" == "dirhtml" ( 72 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 73 | if errorlevel 1 exit /b 1 74 | echo. 75 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 76 | goto end 77 | ) 78 | 79 | if "%1" == "singlehtml" ( 80 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 81 | if errorlevel 1 exit /b 1 82 | echo. 83 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 84 | goto end 85 | ) 86 | 87 | if "%1" == "pickle" ( 88 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 89 | if errorlevel 1 exit /b 1 90 | echo. 91 | echo.Build finished; now you can process the pickle files. 92 | goto end 93 | ) 94 | 95 | if "%1" == "json" ( 96 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 97 | if errorlevel 1 exit /b 1 98 | echo. 99 | echo.Build finished; now you can process the JSON files. 100 | goto end 101 | ) 102 | 103 | if "%1" == "htmlhelp" ( 104 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 105 | if errorlevel 1 exit /b 1 106 | echo. 107 | echo.Build finished; now you can run HTML Help Workshop with the ^ 108 | .hhp project file in %BUILDDIR%/htmlhelp. 109 | goto end 110 | ) 111 | 112 | if "%1" == "qthelp" ( 113 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 114 | if errorlevel 1 exit /b 1 115 | echo. 116 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ 117 | .qhcp project file in %BUILDDIR%/qthelp, like this: 118 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\Buildozer.qhcp 119 | echo.To view the help file: 120 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\Buildozer.ghc 121 | goto end 122 | ) 123 | 124 | if "%1" == "devhelp" ( 125 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 126 | if errorlevel 1 exit /b 1 127 | echo. 128 | echo.Build finished. 129 | goto end 130 | ) 131 | 132 | if "%1" == "epub" ( 133 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 134 | if errorlevel 1 exit /b 1 135 | echo. 136 | echo.Build finished. The epub file is in %BUILDDIR%/epub. 137 | goto end 138 | ) 139 | 140 | if "%1" == "latex" ( 141 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 142 | if errorlevel 1 exit /b 1 143 | echo. 144 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 145 | goto end 146 | ) 147 | 148 | if "%1" == "latexpdf" ( 149 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 150 | cd %BUILDDIR%/latex 151 | make all-pdf 152 | cd %BUILDDIR%/.. 153 | echo. 154 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 155 | goto end 156 | ) 157 | 158 | if "%1" == "latexpdfja" ( 159 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 160 | cd %BUILDDIR%/latex 161 | make all-pdf-ja 162 | cd %BUILDDIR%/.. 163 | echo. 164 | echo.Build finished; the PDF files are in %BUILDDIR%/latex. 165 | goto end 166 | ) 167 | 168 | if "%1" == "text" ( 169 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 170 | if errorlevel 1 exit /b 1 171 | echo. 172 | echo.Build finished. The text files are in %BUILDDIR%/text. 173 | goto end 174 | ) 175 | 176 | if "%1" == "man" ( 177 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 178 | if errorlevel 1 exit /b 1 179 | echo. 180 | echo.Build finished. The manual pages are in %BUILDDIR%/man. 181 | goto end 182 | ) 183 | 184 | if "%1" == "texinfo" ( 185 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo 186 | if errorlevel 1 exit /b 1 187 | echo. 188 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. 189 | goto end 190 | ) 191 | 192 | if "%1" == "gettext" ( 193 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale 194 | if errorlevel 1 exit /b 1 195 | echo. 196 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale. 197 | goto end 198 | ) 199 | 200 | if "%1" == "changes" ( 201 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 202 | if errorlevel 1 exit /b 1 203 | echo. 204 | echo.The overview file is in %BUILDDIR%/changes. 205 | goto end 206 | ) 207 | 208 | if "%1" == "linkcheck" ( 209 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 210 | if errorlevel 1 exit /b 1 211 | echo. 212 | echo.Link check complete; look for any errors in the above output ^ 213 | or in %BUILDDIR%/linkcheck/output.txt. 214 | goto end 215 | ) 216 | 217 | if "%1" == "doctest" ( 218 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 219 | if errorlevel 1 exit /b 1 220 | echo. 221 | echo.Testing of doctests in the sources finished, look at the ^ 222 | results in %BUILDDIR%/doctest/output.txt. 223 | goto end 224 | ) 225 | 226 | if "%1" == "xml" ( 227 | %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml 228 | if errorlevel 1 exit /b 1 229 | echo. 230 | echo.Build finished. The XML files are in %BUILDDIR%/xml. 231 | goto end 232 | ) 233 | 234 | if "%1" == "pseudoxml" ( 235 | %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml 236 | if errorlevel 1 exit /b 1 237 | echo. 238 | echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. 239 | goto end 240 | ) 241 | 242 | :end 243 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | Buildozer 2 | ========= 3 | 4 | Buildozer is a tool for creating application packages easily. 5 | 6 | The goal is to have one "buildozer.spec" file in your app directory, describing 7 | your application requirements and settings such as title, icon, included modules 8 | etc. Buildozer will use that spec to create a package for Android, iOS, Windows, 9 | OSX and/or Linux. 10 | 11 | Buildozer currently supports packaging for Android via the `python-for-android 12 | `_ 13 | project, and for iOS via the kivy-ios project. iOS and OSX are still under work. 14 | 15 | For Android: please have a look at `Android-SDK-NDK-Informations 16 | `_. Please note that 17 | the default SDK/NDK coded in Buildozer works for Python 2. 18 | 19 | We provide a ready-to-use `Virtual Machine for Virtualbox `_. 20 | 21 | Note that this tool has nothing to do with the eponymous online build service 22 | `buildozer.io `_. 23 | 24 | Installing Buildozer with python2 support: 25 | ------------------------------------------ 26 | 27 | #. Install buildozer:: 28 | 29 | # via pip (latest stable, recommended) 30 | sudo pip install buildozer 31 | 32 | # latest dev version 33 | sudo pip install https://github.com/kivy/buildozer/archive/master.zip 34 | 35 | # git clone, for working on buildozer 36 | git clone https://github.com/kivy/buildozer 37 | cd buildozer 38 | python setup.py build 39 | sudo pip install -e . 40 | 41 | #. Go into your application directory and run:: 42 | 43 | buildozer init 44 | # edit the buildozer.spec, then 45 | buildozer android debug deploy run 46 | 47 | Installing Buildozer with python3 support: 48 | ------------------------------------------ 49 | 50 | The pip package does not yet support python3. 51 | 52 | #. Install buildozer from source:: 53 | 54 | git clone https://github.com/kivy/buildozer 55 | cd buildozer 56 | python setup.py build 57 | sudo pip install -e . 58 | 59 | #. Download and extract the Crystax NDK somewhere (~/.buildozer/crystax-ndk is one option): https://www.crystax.net/en/download 60 | #. Go into your application directory and execute:: 61 | 62 | buildozer init 63 | 64 | #. Make sure the following lines are in your buildozer.spec file.:: 65 | 66 | # Require python3crystax: 67 | requirements = python3crystax,kivy 68 | 69 | # Point to the directory where you extracted the crystax-ndk: 70 | android.ndk_path = 71 | 72 | #. Finally, build, deploy and run the app on your phone:: 73 | 74 | buildozer android debug deploy run 75 | 76 | #. Please note the "android" buildozer target, and use that for any and all buildozer commands you run (even if the docs just say "android"). 77 | 78 | 79 | Examples of Buildozer commands: 80 | -------------------------------- 81 | 82 | :: 83 | 84 | # buildozer target command 85 | buildozer android clean 86 | buildozer android update 87 | buildozer android deploy 88 | buildozer android debug 89 | buildozer android release 90 | 91 | # or all in one (compile in debug, deploy on device) 92 | buildozer android debug deploy 93 | 94 | # set the default command if nothing set 95 | buildozer setdefault android debug deploy run 96 | 97 | 98 | Usage 99 | ----- 100 | 101 | :: 102 | 103 | Usage: 104 | buildozer [--profile ] [--verbose] [target] ... 105 | buildozer --version 106 | 107 | Available targets: 108 | android Android target, based on python-for-android project 109 | ios iOS target, based on kivy-ios project 110 | android_old Android target, based on python-for-android project (old toolchain) 111 | 112 | Global commands (without target): 113 | distclean Clean the whole Buildozer environment. 114 | help Show the Buildozer help. 115 | init Create a initial buildozer.spec in the current directory 116 | serve Serve the bin directory via SimpleHTTPServer 117 | setdefault Set the default command to run when no arguments are given 118 | version Show the Buildozer version 119 | 120 | Target commands: 121 | clean Clean the target environment 122 | update Update the target dependencies 123 | debug Build the application in debug mode 124 | release Build the application in release mode 125 | deploy Deploy the application on the device 126 | run Run the application on the device 127 | serve Serve the bin directory via SimpleHTTPServer 128 | 129 | Target "android_old" commands: 130 | adb Run adb from the Android SDK. Args must come after --, or 131 | use --alias to make an alias 132 | logcat Show the log from the device 133 | 134 | Target "ios" commands: 135 | list_identities List the available identities to use for signing. 136 | xcode Open the xcode project. 137 | 138 | Target "android" commands: 139 | adb Run adb from the Android SDK. Args must come after --, or 140 | use --alias to make an alias 141 | logcat Show the log from the device 142 | p4a Run p4a commands. Args must come after --, or use --alias 143 | to make an alias 144 | 145 | 146 | 147 | buildozer.spec 148 | -------------- 149 | 150 | See `buildozer/default.spec `_ for an up-to-date spec file. 151 | 152 | 153 | Default config 154 | -------------- 155 | 156 | You can override the value of *any* buildozer.spec config token by 157 | setting an appropriate environment variable. These are all of the 158 | form ``$SECTION_TOKEN``, where SECTION is the config file section and 159 | TOKEN is the config token to override. Dots are replaced by 160 | underscores. 161 | 162 | For example, here are some config tokens from the [app] section of the 163 | config, along with the environment variables that would override them. 164 | 165 | - ``title`` -> ``$APP_TITLE`` 166 | - ``package.name`` -> ``$APP_PACKAGE_NAME`` 167 | - ``p4a.source_dir`` -> ``$APP_P4A_SOURCE_DIR`` 168 | 169 | Buildozer Virtual Machine 170 | ------------------------- 171 | 172 | The current virtual machine (available via https://kivy.org/downloads/) allow 173 | you to have a ready to use vm for building android application. 174 | 175 | Using shared folders 176 | ++++++++++++++++++++ 177 | 178 | If the Virtualbox Guest tools are outdated, install the latest one: 179 | 180 | - in the Virtualbox: `Devices` -> `Install Guest Additions CD images` 181 | - in the guest/linux: Go to the cdrom and run the installer 182 | - reboot the vm 183 | 184 | VirtualBox filesystem doesn't support symlink anymore (don't 185 | try the setextradata solution, it doesn't work.). So you must 186 | do the build outside the shared folder. One solution: 187 | 188 | - `sudo mkdir /build` 189 | - `sudo chown kivy /build` 190 | - In your buildozer.spec, section `[buildozer]`, set `build_dir = /build/buildozer-myapp` 191 | 192 | Using your devices via the VM 193 | +++++++++++++++++++++++++++++ 194 | 195 | There is a little icon on the bottom left that represent an USB plug. 196 | Select it, and select your android device on it. Then you can check: 197 | 198 | - `buildozer android adb -- devices` 199 | 200 | If it doesn't, use Google. They are so many differents way / issues 201 | depending your phone that Google will be your only source of 202 | information, not us :) 203 | 204 | Support 205 | ------- 206 | 207 | If you need assistance, you can ask for help on our mailing list: 208 | 209 | * User Group : https://groups.google.com/group/kivy-users 210 | * Email : kivy-users@googlegroups.com 211 | 212 | We also have an IRC channel: 213 | 214 | * Server : irc.freenode.net 215 | * Port : 6667, 6697 (SSL only) 216 | * Channel : #kivy 217 | 218 | Contributing 219 | ------------ 220 | 221 | We love pull requests and discussing novel ideas. Check out our 222 | `contribution guide `_ and 223 | feel free to improve buildozer. 224 | 225 | The following mailing list and IRC channel are used exclusively for 226 | discussions about developing the Kivy framework and its sister projects: 227 | 228 | * Dev Group : https://groups.google.com/group/kivy-dev 229 | * Email : kivy-dev@googlegroups.com 230 | 231 | IRC channel: 232 | 233 | * Server : irc.freenode.net 234 | * Port : 6667, 6697 (SSL only) 235 | * Channel : #kivy-dev 236 | 237 | License 238 | ------- 239 | 240 | Buildozer is released under the terms of the MIT License. Please refer to the 241 | LICENSE file. 242 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Buildozer documentation build configuration file, created by 4 | # sphinx-quickstart on Sun Apr 20 16:56:31 2014. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | #sys.path.insert(0, os.path.abspath('.')) 20 | 21 | # -- General configuration ----------------------------------------------------- 22 | 23 | # If your documentation needs a minimal Sphinx version, state it here. 24 | #needs_sphinx = '1.0' 25 | 26 | # Add any Sphinx extension module names here, as strings. They can be extensions 27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 28 | extensions = [] 29 | 30 | # Add any paths that contain templates here, relative to this directory. 31 | templates_path = ['_templates'] 32 | 33 | # The suffix of source filenames. 34 | source_suffix = '.rst' 35 | 36 | # The encoding of source files. 37 | #source_encoding = 'utf-8-sig' 38 | 39 | # The master toctree document. 40 | master_doc = 'index' 41 | 42 | # General information about the project. 43 | project = u'Buildozer' 44 | copyright = u'2014, Kivy\'s Developers' 45 | 46 | # The version info for the project you're documenting, acts as replacement for 47 | # |version| and |release|, also used in various other places throughout the 48 | # built documents. 49 | # 50 | # The short X.Y version. 51 | version = '0.11' 52 | # The full version, including alpha/beta/rc tags. 53 | release = '0.11' 54 | 55 | # The language for content autogenerated by Sphinx. Refer to documentation 56 | # for a list of supported languages. 57 | #language = None 58 | 59 | # There are two options for replacing |today|: either, you set today to some 60 | # non-false value, then it is used: 61 | #today = '' 62 | # Else, today_fmt is used as the format for a strftime call. 63 | #today_fmt = '%B %d, %Y' 64 | 65 | # List of patterns, relative to source directory, that match files and 66 | # directories to ignore when looking for source files. 67 | exclude_patterns = [] 68 | 69 | # The reST default role (used for this markup: `text`) to use for all documents. 70 | #default_role = None 71 | 72 | # If true, '()' will be appended to :func: etc. cross-reference text. 73 | #add_function_parentheses = True 74 | 75 | # If true, the current module name will be prepended to all description 76 | # unit titles (such as .. function::). 77 | #add_module_names = True 78 | 79 | # If true, sectionauthor and moduleauthor directives will be shown in the 80 | # output. They are ignored by default. 81 | #show_authors = False 82 | 83 | # The name of the Pygments (syntax highlighting) style to use. 84 | pygments_style = 'sphinx' 85 | 86 | # A list of ignored prefixes for module index sorting. 87 | #modindex_common_prefix = [] 88 | 89 | # If true, keep warnings as "system message" paragraphs in the built documents. 90 | #keep_warnings = False 91 | 92 | 93 | # -- Options for HTML output --------------------------------------------------- 94 | 95 | # The theme to use for HTML and HTML Help pages. See the documentation for 96 | # a list of builtin themes. 97 | html_theme = 'default' 98 | 99 | # Theme options are theme-specific and customize the look and feel of a theme 100 | # further. For a list of options available for each theme, see the 101 | # documentation. 102 | #html_theme_options = {} 103 | 104 | # Add any paths that contain custom themes here, relative to this directory. 105 | #html_theme_path = [] 106 | 107 | # The name for this set of Sphinx documents. If None, it defaults to 108 | # " v documentation". 109 | #html_title = None 110 | 111 | # A shorter title for the navigation bar. Default is the same as html_title. 112 | #html_short_title = None 113 | 114 | # The name of an image file (relative to this directory) to place at the top 115 | # of the sidebar. 116 | #html_logo = None 117 | 118 | # The name of an image file (within the static path) to use as favicon of the 119 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 120 | # pixels large. 121 | #html_favicon = None 122 | 123 | # Add any paths that contain custom static files (such as style sheets) here, 124 | # relative to this directory. They are copied after the builtin static files, 125 | # so a file named "default.css" will overwrite the builtin "default.css". 126 | html_static_path = ['_static'] 127 | 128 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 129 | # using the given strftime format. 130 | #html_last_updated_fmt = '%b %d, %Y' 131 | 132 | # If true, SmartyPants will be used to convert quotes and dashes to 133 | # typographically correct entities. 134 | #html_use_smartypants = True 135 | 136 | # Custom sidebar templates, maps document names to template names. 137 | #html_sidebars = {} 138 | 139 | # Additional templates that should be rendered to pages, maps page names to 140 | # template names. 141 | #html_additional_pages = {} 142 | 143 | # If false, no module index is generated. 144 | #html_domain_indices = True 145 | 146 | # If false, no index is generated. 147 | #html_use_index = True 148 | 149 | # If true, the index is split into individual pages for each letter. 150 | #html_split_index = False 151 | 152 | # If true, links to the reST sources are added to the pages. 153 | #html_show_sourcelink = True 154 | 155 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 156 | #html_show_sphinx = True 157 | 158 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 159 | #html_show_copyright = True 160 | 161 | # If true, an OpenSearch description file will be output, and all pages will 162 | # contain a tag referring to it. The value of this option must be the 163 | # base URL from which the finished HTML is served. 164 | #html_use_opensearch = '' 165 | 166 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 167 | #html_file_suffix = None 168 | 169 | # Output file base name for HTML help builder. 170 | htmlhelp_basename = 'Buildozerdoc' 171 | 172 | 173 | # -- Options for LaTeX output -------------------------------------------------- 174 | 175 | latex_elements = { 176 | # The paper size ('letterpaper' or 'a4paper'). 177 | #'papersize': 'letterpaper', 178 | 179 | # The font size ('10pt', '11pt' or '12pt'). 180 | #'pointsize': '10pt', 181 | 182 | # Additional stuff for the LaTeX preamble. 183 | #'preamble': '', 184 | } 185 | 186 | # Grouping the document tree into LaTeX files. List of tuples 187 | # (source start file, target name, title, author, documentclass [howto/manual]). 188 | latex_documents = [ 189 | ('index', 'Buildozer.tex', u'Buildozer Documentation', 190 | u'Kivy\'s Developers', 'manual'), 191 | ] 192 | 193 | # The name of an image file (relative to this directory) to place at the top of 194 | # the title page. 195 | #latex_logo = None 196 | 197 | # For "manual" documents, if this is true, then toplevel headings are parts, 198 | # not chapters. 199 | #latex_use_parts = False 200 | 201 | # If true, show page references after internal links. 202 | #latex_show_pagerefs = False 203 | 204 | # If true, show URL addresses after external links. 205 | #latex_show_urls = False 206 | 207 | # Documents to append as an appendix to all manuals. 208 | #latex_appendices = [] 209 | 210 | # If false, no module index is generated. 211 | #latex_domain_indices = True 212 | 213 | 214 | # -- Options for manual page output -------------------------------------------- 215 | 216 | # One entry per manual page. List of tuples 217 | # (source start file, name, description, authors, manual section). 218 | man_pages = [ 219 | ('index', 'buildozer', u'Buildozer Documentation', 220 | [u'Kivy\'s Developers'], 1) 221 | ] 222 | 223 | # If true, show URL addresses after external links. 224 | #man_show_urls = False 225 | 226 | 227 | # -- Options for Texinfo output ------------------------------------------------ 228 | 229 | # Grouping the document tree into Texinfo files. List of tuples 230 | # (source start file, target name, title, author, 231 | # dir menu entry, description, category) 232 | texinfo_documents = [ 233 | ('index', 'Buildozer', u'Buildozer Documentation', 234 | u'Kivy\'s Developers', 'Buildozer', 'One line description of project.', 235 | 'Miscellaneous'), 236 | ] 237 | 238 | # Documents to append as an appendix to all manuals. 239 | #texinfo_appendices = [] 240 | 241 | # If false, no module index is generated. 242 | #texinfo_domain_indices = True 243 | 244 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 245 | #texinfo_show_urls = 'footnote' 246 | 247 | # If true, do not generate a @detailmenu in the "Top" node's menu. 248 | #texinfo_no_detailmenu = False 249 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [0.34](https://github.com/kivy/buildozer/tree/0.34) (2017-12-15) 4 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.33...0.34) 5 | 6 | **Closed issues:** 7 | 8 | - IOERROR invalid directory [\#599](https://github.com/kivy/buildozer/issues/599) 9 | - Buidozer 0.33 AttributeError: 'module' object has no attribute 'directory' [\#598](https://github.com/kivy/buildozer/issues/598) 10 | - Issu with buildozer packing [\#596](https://github.com/kivy/buildozer/issues/596) 11 | - Gradle: path may not be null or empty string. path='null' [\#595](https://github.com/kivy/buildozer/issues/595) 12 | - ERROR: Trying to release a package that starts with org.test; what can I do? [\#593](https://github.com/kivy/buildozer/issues/593) 13 | - App crash with python3 [\#590](https://github.com/kivy/buildozer/issues/590) 14 | - Problem running buildozer android debug first time [\#586](https://github.com/kivy/buildozer/issues/586) 15 | - buildozer download some content failed [\#585](https://github.com/kivy/buildozer/issues/585) 16 | - complie platform failed [\#580](https://github.com/kivy/buildozer/issues/580) 17 | - Module OS - buildozer.spec [\#579](https://github.com/kivy/buildozer/issues/579) 18 | - Buildozer doesn't compile app with cryptography requirement [\#578](https://github.com/kivy/buildozer/issues/578) 19 | - Buildozer x psycopg2 [\#575](https://github.com/kivy/buildozer/issues/575) 20 | - Problem with Android API 23 [\#573](https://github.com/kivy/buildozer/issues/573) 21 | - App crashing on startup- ImportError: dlopen failed: \_imaging.so is 64-bit [\#568](https://github.com/kivy/buildozer/issues/568) 22 | - Buildozer issue with latest Xcode/macOS [\#566](https://github.com/kivy/buildozer/issues/566) 23 | - Requests SSL error [\#565](https://github.com/kivy/buildozer/issues/565) 24 | - buildozer failed for `Broken toolchain` when building numpy with python.host [\#564](https://github.com/kivy/buildozer/issues/564) 25 | - Encountered a bad program behavior [\#563](https://github.com/kivy/buildozer/issues/563) 26 | - error at using pycypto in the requirements [\#558](https://github.com/kivy/buildozer/issues/558) 27 | - Websocket error: SSL not available. [\#552](https://github.com/kivy/buildozer/issues/552) 28 | - "crystax\_python does not exist" with python3crystax [\#551](https://github.com/kivy/buildozer/issues/551) 29 | - App crashes after build [\#549](https://github.com/kivy/buildozer/issues/549) 30 | - Installing CyLP on windows [\#548](https://github.com/kivy/buildozer/issues/548) 31 | - Service notification launch intent causes app crash [\#547](https://github.com/kivy/buildozer/issues/547) 32 | - Application crashes on start [\#546](https://github.com/kivy/buildozer/issues/546) 33 | - New android target is unable to produce a python 4 android service [\#543](https://github.com/kivy/buildozer/issues/543) 34 | - Buildozer Build Error [\#538](https://github.com/kivy/buildozer/issues/538) 35 | - \# Aidl not found, please install it. [\#537](https://github.com/kivy/buildozer/issues/537) 36 | - Error compiling Cython file on Ubuntu 14.0.4 with python 2.7 and 3.4/5 [\#536](https://github.com/kivy/buildozer/issues/536) 37 | - Failed compilation on ubuntu with python 2.7 configure: error: C compiler cannot create executables [\#535](https://github.com/kivy/buildozer/issues/535) 38 | - Remove app permissions added by default [\#534](https://github.com/kivy/buildozer/issues/534) 39 | - Buildozer error while packaging [\#531](https://github.com/kivy/buildozer/issues/531) 40 | - Buildozer failing to pack .apk [\#530](https://github.com/kivy/buildozer/issues/530) 41 | - toolchain fails to recognize option --sdk [\#524](https://github.com/kivy/buildozer/issues/524) 42 | - \# Command failed: /usr/bin/python -m pythonforandroid.toolchain create --dist\_name=myapp --bootstrap=sdl2 --requirements=kivy --arch armeabi-v7a --copy-libs --color=always --storage-dir=/home/abhipso/thembapp/.buildozer/android/platform/build [\#521](https://github.com/kivy/buildozer/issues/521) 43 | - apk way too large - 800mb [\#520](https://github.com/kivy/buildozer/issues/520) 44 | - \[features\] Snapcraft implementation [\#514](https://github.com/kivy/buildozer/issues/514) 45 | - Possibility of building in kivy virtual machine all locally [\#513](https://github.com/kivy/buildozer/issues/513) 46 | - Python3\(crystax ndk\) builds broken [\#511](https://github.com/kivy/buildozer/issues/511) 47 | - build fails in virtualenv [\#509](https://github.com/kivy/buildozer/issues/509) 48 | - password for the virtual machine? [\#507](https://github.com/kivy/buildozer/issues/507) 49 | - Failed to build APK with python 3.6 : \[sh.CommandNotFound: python3.5\] [\#504](https://github.com/kivy/buildozer/issues/504) 50 | - Don't Unpacking opencv for armeabi-v7a [\#503](https://github.com/kivy/buildozer/issues/503) 51 | - Fails to package app on OSX Sierra 10.12.4 \(hdiutil: attach failed - image not recognized keka\) [\#494](https://github.com/kivy/buildozer/issues/494) 52 | - File missing building release APK [\#469](https://github.com/kivy/buildozer/issues/469) 53 | - Building APK using Buildozer/Kivy [\#459](https://github.com/kivy/buildozer/issues/459) 54 | - buildozer failed to build apk: subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#373](https://github.com/kivy/buildozer/issues/373) 55 | - AttributeError: 'Context' object has no attribute 'hostpython' in recipe [\#361](https://github.com/kivy/buildozer/issues/361) 56 | - Cant compile apk with sqlite3 \(using python3 crystax\) [\#359](https://github.com/kivy/buildozer/issues/359) 57 | 58 | **Merged pull requests:** 59 | 60 | - Imported os to fix ImportError [\#594](https://github.com/kivy/buildozer/pull/594) ([inclement](https://github.com/inclement)) 61 | - add p4a.port config option; to allow specifiying webview port [\#588](https://github.com/kivy/buildozer/pull/588) ([replabrobin](https://github.com/replabrobin)) 62 | - Fix Py3 utf-8 encode error [\#582](https://github.com/kivy/buildozer/pull/582) ([Zen-CODE](https://github.com/Zen-CODE)) 63 | - Fixes `p4a.branch` comment [\#577](https://github.com/kivy/buildozer/pull/577) ([AndreMiras](https://github.com/AndreMiras)) 64 | - Fix old toolchain index error [\#576](https://github.com/kivy/buildozer/pull/576) ([Zen-CODE](https://github.com/Zen-CODE)) 65 | - Some fixes in old android target [\#572](https://github.com/kivy/buildozer/pull/572) ([rnixx](https://github.com/rnixx)) 66 | - Removed --sdk argument for p4a [\#571](https://github.com/kivy/buildozer/pull/571) ([inclement](https://github.com/inclement)) 67 | - Update specifications.rst [\#560](https://github.com/kivy/buildozer/pull/560) ([saltycraig](https://github.com/saltycraig)) 68 | - Changed p4a directory name for current toolchain [\#527](https://github.com/kivy/buildozer/pull/527) ([inclement](https://github.com/inclement)) 69 | - Update android.py, updated recreate the project.properties section [\#525](https://github.com/kivy/buildozer/pull/525) ([mokhoo](https://github.com/mokhoo)) 70 | - Fix unicode coding error in android build target [\#518](https://github.com/kivy/buildozer/pull/518) ([jamalex](https://github.com/jamalex)) 71 | - Add 404 status code handling on kivy download [\#508](https://github.com/kivy/buildozer/pull/508) ([SecretObsession](https://github.com/SecretObsession)) 72 | - Use dmg instead of 7z [\#505](https://github.com/kivy/buildozer/pull/505) ([shivan1b](https://github.com/shivan1b)) 73 | 74 | ## [0.33](https://github.com/kivy/buildozer/tree/0.33) (2017-05-15) 75 | [Full Changelog](https://github.com/kivy/buildozer/compare/v0.32...0.33) 76 | 77 | **Fixed bugs:** 78 | 79 | - Installation of python for android is missing dependencies [\#501](https://github.com/kivy/buildozer/issues/501) 80 | 81 | **Closed issues:** 82 | 83 | - Break buildozer if the user try to release a version with "org.test" as a domain [\#500](https://github.com/kivy/buildozer/issues/500) 84 | - Migrate p4a options to its own subkey [\#499](https://github.com/kivy/buildozer/issues/499) 85 | - Use stable branch from python-for-android [\#498](https://github.com/kivy/buildozer/issues/498) 86 | - Migrate android to android\_new, and add android\_old [\#497](https://github.com/kivy/buildozer/issues/497) 87 | - sh.CommandNotFound: cmake [\#496](https://github.com/kivy/buildozer/issues/496) 88 | - Need Help Fatal signal 11 \(SIGSEGV\) at 0x00000000 \(code=1\), thread 4579 \(SDLThread\) [\#495](https://github.com/kivy/buildozer/issues/495) 89 | - Buildozer APK Cannot LAUNCH [\#493](https://github.com/kivy/buildozer/issues/493) 90 | - Buildozer Error [\#492](https://github.com/kivy/buildozer/issues/492) 91 | - android\_new target hardcodes python2 support for p4a [\#491](https://github.com/kivy/buildozer/issues/491) 92 | - android.arch ignored [\#488](https://github.com/kivy/buildozer/issues/488) 93 | - fail to install distribute [\#486](https://github.com/kivy/buildozer/issues/486) 94 | - sh.py raise a exception and fail to build [\#485](https://github.com/kivy/buildozer/issues/485) 95 | - some functionality lost when debugged with android\_new command [\#481](https://github.com/kivy/buildozer/issues/481) 96 | - Problem when deploy to android device [\#480](https://github.com/kivy/buildozer/issues/480) 97 | - dlopen failed: python2.7/site-packages/grpc/\_cython/cygrpc.so not 32-bit: 2 [\#479](https://github.com/kivy/buildozer/issues/479) 98 | - Cannot build APK with python3crystax and flask - conflicting dependencies [\#477](https://github.com/kivy/buildozer/issues/477) 99 | - Buildozer can't download NDK [\#474](https://github.com/kivy/buildozer/issues/474) 100 | - websocket-client "SSL not available." [\#473](https://github.com/kivy/buildozer/issues/473) 101 | - Using Cython with Kivy-iOS and Buildozer [\#472](https://github.com/kivy/buildozer/issues/472) 102 | - android.requirements does not merge with app.requirements [\#471](https://github.com/kivy/buildozer/issues/471) 103 | - buildozer fails to find Android SDK [\#468](https://github.com/kivy/buildozer/issues/468) 104 | - Crash of APK on start [\#467](https://github.com/kivy/buildozer/issues/467) 105 | - App not launching [\#461](https://github.com/kivy/buildozer/issues/461) 106 | - sqlite3 not working with android\_new [\#457](https://github.com/kivy/buildozer/issues/457) 107 | - how to set path for p4a [\#454](https://github.com/kivy/buildozer/issues/454) 108 | - TypeError: write\(\) argument 1 must be unicode, not str [\#452](https://github.com/kivy/buildozer/issues/452) 109 | - New toolchain - lxml included but not able to import [\#451](https://github.com/kivy/buildozer/issues/451) 110 | - sqlite3 with python2.7 and buildozer 0.33dev and new toolchain not working [\#450](https://github.com/kivy/buildozer/issues/450) 111 | - Update the Virtual Machine @ https://kivy.org/\#download [\#449](https://github.com/kivy/buildozer/issues/449) 112 | - “No module named setuptools” after installing setuptools [\#444](https://github.com/kivy/buildozer/issues/444) 113 | - how to add --arch=armeabi-v7a to buildozer spec [\#443](https://github.com/kivy/buildozer/issues/443) 114 | - `buildozer android debug` fails with `jinja2.exceptions.TemplateNotFound: build.xml` [\#442](https://github.com/kivy/buildozer/issues/442) 115 | - buildozer.spec - requirements - kivy == master [\#440](https://github.com/kivy/buildozer/issues/440) 116 | - Buildozer can't find zlib [\#437](https://github.com/kivy/buildozer/issues/437) 117 | - Expose kivy download source? [\#435](https://github.com/kivy/buildozer/issues/435) 118 | - compiling crash [\#431](https://github.com/kivy/buildozer/issues/431) 119 | - Buildozer unable to make apk [\#430](https://github.com/kivy/buildozer/issues/430) 120 | - Crash APK on start [\#429](https://github.com/kivy/buildozer/issues/429) 121 | - More like a noob question [\#428](https://github.com/kivy/buildozer/issues/428) 122 | - keka failed to download \(OS X El Capitan\) [\#427](https://github.com/kivy/buildozer/issues/427) 123 | - Buildozer fails with pure python library pint [\#425](https://github.com/kivy/buildozer/issues/425) 124 | - Invalid argument to arm-linux-androideabi-gcc [\#424](https://github.com/kivy/buildozer/issues/424) 125 | - dlopen failed: \_clock.so is 64-bit instead of 32-bit [\#423](https://github.com/kivy/buildozer/issues/423) 126 | - how to solve the build error for "java"? [\#421](https://github.com/kivy/buildozer/issues/421) 127 | - Problems in patching files during building for android\_new [\#416](https://github.com/kivy/buildozer/issues/416) 128 | - Buildozer doesn't work with multiple first-class directories [\#415](https://github.com/kivy/buildozer/issues/415) 129 | - Buildozer suddenly not working, Linux, Python 2.7 \(build.xml: Failed to find version-tag string\) [\#414](https://github.com/kivy/buildozer/issues/414) 130 | - Buildozer not finding aidl [\#413](https://github.com/kivy/buildozer/issues/413) 131 | - buildozer android created apk fails if application source kept in multiple files [\#411](https://github.com/kivy/buildozer/issues/411) 132 | - Python 3 unicode print \(\) / copy to clipboard crashes app on Android [\#404](https://github.com/kivy/buildozer/issues/404) 133 | - checking whether the C compiler works... no [\#402](https://github.com/kivy/buildozer/issues/402) 134 | - configure: error: C compiler cannot create executables [\#395](https://github.com/kivy/buildozer/issues/395) 135 | - ConfigParser.NoOptionError: No option 'p4a.local\_recipes' in section: 'app' \(android\_new\) [\#394](https://github.com/kivy/buildozer/issues/394) 136 | - Google has changed the type of archive the new NDK [\#393](https://github.com/kivy/buildozer/issues/393) 137 | - Why does buildozer build and pull python for android from old\_toolchain branch ? [\#389](https://github.com/kivy/buildozer/issues/389) 138 | - buildozer android\_new does not show the presplash [\#387](https://github.com/kivy/buildozer/issues/387) 139 | - Error when using buildozer android\_new with python3crystax [\#386](https://github.com/kivy/buildozer/issues/386) 140 | - Command failed: tar xzf android-sdk\_r20-linux.tgz [\#383](https://github.com/kivy/buildozer/issues/383) 141 | - When will you add requests lib to recipes? [\#382](https://github.com/kivy/buildozer/issues/382) 142 | - Presplash does not work with "android\_new" as target. [\#380](https://github.com/kivy/buildozer/issues/380) 143 | - Build for Android is Inconsistent with the Linux Version [\#378](https://github.com/kivy/buildozer/issues/378) 144 | - \[question\] What are the supported OS ? [\#369](https://github.com/kivy/buildozer/issues/369) 145 | - AttributeError: 'AnsiCodes' object has no attribute 'LIGHTBLUE\_EX' [\#366](https://github.com/kivy/buildozer/issues/366) 146 | - splash image not hide after kivy loaded [\#364](https://github.com/kivy/buildozer/issues/364) 147 | - app always crash in android [\#360](https://github.com/kivy/buildozer/issues/360) 148 | - Plyer not available in buildozer android\_new [\#358](https://github.com/kivy/buildozer/issues/358) 149 | - Runs empty directory instead of binary \(android\_new\) [\#357](https://github.com/kivy/buildozer/issues/357) 150 | - App built with buildozer does not open on android [\#356](https://github.com/kivy/buildozer/issues/356) 151 | - Error when running buildozer android\_new debug [\#354](https://github.com/kivy/buildozer/issues/354) 152 | - ios list\_identities returns no identities [\#353](https://github.com/kivy/buildozer/issues/353) 153 | - buildozer not working [\#350](https://github.com/kivy/buildozer/issues/350) 154 | - error: Cython does not appear to be installed [\#349](https://github.com/kivy/buildozer/issues/349) 155 | - AttributeError: 'Context' object has no attribute 'hostpython' [\#347](https://github.com/kivy/buildozer/issues/347) 156 | - osx packaging results in venv error [\#345](https://github.com/kivy/buildozer/issues/345) 157 | - Requirement example requirements = kivy,requests fails [\#344](https://github.com/kivy/buildozer/issues/344) 158 | - Unavailability of important packages [\#343](https://github.com/kivy/buildozer/issues/343) 159 | - no way to change bootstrap [\#341](https://github.com/kivy/buildozer/issues/341) 160 | - Apk built with buildozer and multiple python file crashes [\#331](https://github.com/kivy/buildozer/issues/331) 161 | - Please upgrade the documentation [\#255](https://github.com/kivy/buildozer/issues/255) 162 | - Buildozer doesn't recognize "profile" option anymore [\#254](https://github.com/kivy/buildozer/issues/254) 163 | - Try to build with caldav requirement fails [\#248](https://github.com/kivy/buildozer/issues/248) 164 | - Trouble building for older android versions [\#240](https://github.com/kivy/buildozer/issues/240) 165 | - removing old apk file seems to fail before installing the new one [\#238](https://github.com/kivy/buildozer/issues/238) 166 | - Build fails due to python-distribute.org being down [\#200](https://github.com/kivy/buildozer/issues/200) 167 | - I am struggling with building an apk [\#153](https://github.com/kivy/buildozer/issues/153) 168 | - fresh android sdk install requires sdk update [\#151](https://github.com/kivy/buildozer/issues/151) 169 | - FYI - Ubuntu 14.04 Necessary Java Path Adjustment [\#141](https://github.com/kivy/buildozer/issues/141) 170 | - Cannot compile `iri2uri.py` in `httplib2` [\#135](https://github.com/kivy/buildozer/issues/135) 171 | - can't add django to requirement [\#130](https://github.com/kivy/buildozer/issues/130) 172 | - add an ssh target [\#1](https://github.com/kivy/buildozer/issues/1) 173 | 174 | **Merged pull requests:** 175 | 176 | - close \#452 as suggested by SpotlightKid [\#489](https://github.com/kivy/buildozer/pull/489) ([pat1](https://github.com/pat1)) 177 | - Update README.rst [\#487](https://github.com/kivy/buildozer/pull/487) ([matletix](https://github.com/matletix)) 178 | - Made buildozer run p4a using the current sys.executable [\#484](https://github.com/kivy/buildozer/pull/484) ([inclement](https://github.com/inclement)) 179 | - ios: refactor deprecated PackageApplication command [\#483](https://github.com/kivy/buildozer/pull/483) ([kived](https://github.com/kived)) 180 | - android\_new: change skip\_update to skip all updates [\#465](https://github.com/kivy/buildozer/pull/465) ([ZingBallyhoo](https://github.com/ZingBallyhoo)) 181 | - android\_new: add "android.arch" config option [\#458](https://github.com/kivy/buildozer/pull/458) ([ZingBallyhoo](https://github.com/ZingBallyhoo)) 182 | - Fix Py3 Incompatable str + bytes issue. [\#456](https://github.com/kivy/buildozer/pull/456) ([FeralBytes](https://github.com/FeralBytes)) 183 | - spec file: dont use fullscreen by default [\#447](https://github.com/kivy/buildozer/pull/447) ([rafalo1333](https://github.com/rafalo1333)) 184 | - spec file: use portrait orientation by default [\#446](https://github.com/kivy/buildozer/pull/446) ([rafalo1333](https://github.com/rafalo1333)) 185 | - Add presplash background color support for android\_new toolchain [\#436](https://github.com/kivy/buildozer/pull/436) ([rnixx](https://github.com/rnixx)) 186 | - Fix file\_matches to never return None [\#432](https://github.com/kivy/buildozer/pull/432) ([inclement](https://github.com/inclement)) 187 | - Fixed 64 bit detection \(it failed under python3\) [\#409](https://github.com/kivy/buildozer/pull/409) ([inclement](https://github.com/inclement)) 188 | - Added p4a.local\_recipes to default.spec and handled its absence [\#405](https://github.com/kivy/buildozer/pull/405) ([inclement](https://github.com/inclement)) 189 | - Adding README.rst entries for how to use buildozer with python3 [\#403](https://github.com/kivy/buildozer/pull/403) ([andyDoucette](https://github.com/andyDoucette)) 190 | - Update installation.rst \(Ubuntu16.04\) [\#399](https://github.com/kivy/buildozer/pull/399) ([FermiParadox](https://github.com/FermiParadox)) 191 | - Update quickstart.rst [\#398](https://github.com/kivy/buildozer/pull/398) ([FermiParadox](https://github.com/FermiParadox)) 192 | - Add p4a.local\_recipes to buildozer.spec to specify a local recipe dir… [\#385](https://github.com/kivy/buildozer/pull/385) ([cidermole](https://github.com/cidermole)) 193 | - Always pass required args to p4a in android\_new [\#375](https://github.com/kivy/buildozer/pull/375) ([inclement](https://github.com/inclement)) 194 | - Changed p4a command order to work with argparse [\#374](https://github.com/kivy/buildozer/pull/374) ([inclement](https://github.com/inclement)) 195 | - buildozer has no attribute builddir [\#351](https://github.com/kivy/buildozer/pull/351) ([nilutz](https://github.com/nilutz)) 196 | - throw error early if running in venv [\#346](https://github.com/kivy/buildozer/pull/346) ([kived](https://github.com/kived)) 197 | - allow selection of bootstrap for android\_new [\#342](https://github.com/kivy/buildozer/pull/342) ([kived](https://github.com/kived)) 198 | - bump version to 0.33dev [\#340](https://github.com/kivy/buildozer/pull/340) ([kived](https://github.com/kived)) 199 | - trying to fix Kivy install for OS X builds [\#316](https://github.com/kivy/buildozer/pull/316) ([derPinguin](https://github.com/derPinguin)) 200 | - update installation info [\#256](https://github.com/kivy/buildozer/pull/256) ([kiok46](https://github.com/kiok46)) 201 | 202 | ## [v0.32](https://github.com/kivy/buildozer/tree/v0.32) (2016-05-09) 203 | [Full Changelog](https://github.com/kivy/buildozer/compare/v0.31...v0.32) 204 | 205 | **Closed issues:** 206 | 207 | - When is the support coming to build windows .exe using buildozer? [\#333](https://github.com/kivy/buildozer/issues/333) 208 | - outdated openssl [\#332](https://github.com/kivy/buildozer/issues/332) 209 | - ios deployment fails \(buildozer --verbose ios debug deploy\) [\#330](https://github.com/kivy/buildozer/issues/330) 210 | - Can't add uuid pytz datetime time dbf to requirements [\#329](https://github.com/kivy/buildozer/issues/329) 211 | - AttributeError: 'NoneType' object has no attribute 'startswith' [\#326](https://github.com/kivy/buildozer/issues/326) 212 | - android.p4a\_dir use old toolchain? [\#325](https://github.com/kivy/buildozer/issues/325) 213 | - Switch from pygame to sdl2 easily [\#313](https://github.com/kivy/buildozer/issues/313) 214 | - IOError: \[Errno 2\] No such file or directory: "/home/andrew/CODE/Python/kivy-test-android/.buildozer/android/platform/python-for-android/dist/helloworld/bin/HelloWorld-'1.0'-debug.apk" [\#312](https://github.com/kivy/buildozer/issues/312) 215 | - Marshmallow sdk not found [\#310](https://github.com/kivy/buildozer/issues/310) 216 | - Install Buildozer: Finished processing dependencies for buildozer==0.32dev [\#304](https://github.com/kivy/buildozer/issues/304) 217 | - Bump default min SDK to 13: Fix crash on orientation change bug [\#302](https://github.com/kivy/buildozer/issues/302) 218 | - Disable "Open with file manager" when USB cable is connected in virtual machine [\#299](https://github.com/kivy/buildozer/issues/299) 219 | - Check presence of main.py during build time [\#298](https://github.com/kivy/buildozer/issues/298) 220 | - Py3: 'Buildozer' object has no attribute 'critical' [\#297](https://github.com/kivy/buildozer/issues/297) 221 | - The splash screen isn't automatically resized [\#292](https://github.com/kivy/buildozer/issues/292) 222 | - buildozer don't work if whitespace in path [\#287](https://github.com/kivy/buildozer/issues/287) 223 | - buildozer help fail [\#285](https://github.com/kivy/buildozer/issues/285) 224 | - Buildozer.spec 's title of your application can not be a Chinese character [\#284](https://github.com/kivy/buildozer/issues/284) 225 | - How to build apk with a cython file [\#283](https://github.com/kivy/buildozer/issues/283) 226 | - pip no longer has a --download-cache option, so downloading requirements has stopped working [\#279](https://github.com/kivy/buildozer/issues/279) 227 | - Cython2 not recognized in Fedora23 ? [\#278](https://github.com/kivy/buildozer/issues/278) 228 | - Buildozer VIrtual Machine Error: /jni/application/src/': Not a directory [\#277](https://github.com/kivy/buildozer/issues/277) 229 | - buildozer android debug deploy run hangs [\#275](https://github.com/kivy/buildozer/issues/275) 230 | - Is it possible to move the .buildozer folder somewhere else? [\#273](https://github.com/kivy/buildozer/issues/273) 231 | - configure: error: C compiler cannot create executables [\#272](https://github.com/kivy/buildozer/issues/272) 232 | - buildozer deploy error [\#271](https://github.com/kivy/buildozer/issues/271) 233 | - Cannot set Android API version [\#268](https://github.com/kivy/buildozer/issues/268) 234 | - Support python3 [\#265](https://github.com/kivy/buildozer/issues/265) 235 | - App crash when changing orientation [\#264](https://github.com/kivy/buildozer/issues/264) 236 | - Broken update command [\#261](https://github.com/kivy/buildozer/issues/261) 237 | - error while deploying android [\#257](https://github.com/kivy/buildozer/issues/257) 238 | - jnius/jnius.c: No such file or directory [\#251](https://github.com/kivy/buildozer/issues/251) 239 | - Implement source.include\_patterns [\#245](https://github.com/kivy/buildozer/issues/245) 240 | - Buildozer Python 3 Compatability Issues [\#175](https://github.com/kivy/buildozer/issues/175) 241 | 242 | **Merged pull requests:** 243 | 244 | - prepare for release 0.32 [\#339](https://github.com/kivy/buildozer/pull/339) ([kived](https://github.com/kived)) 245 | - use p4a --color argument [\#338](https://github.com/kivy/buildozer/pull/338) ([kived](https://github.com/kived)) 246 | - fix changing android branch [\#337](https://github.com/kivy/buildozer/pull/337) ([kived](https://github.com/kived)) 247 | - use cp -a not cp -r [\#336](https://github.com/kivy/buildozer/pull/336) ([akshayaurora](https://github.com/akshayaurora)) 248 | - improve build directory handling, add values to default.spec [\#335](https://github.com/kivy/buildozer/pull/335) ([kived](https://github.com/kived)) 249 | - fix incorrect api/minapi values [\#334](https://github.com/kivy/buildozer/pull/334) ([kived](https://github.com/kived)) 250 | - fix bad placement of expanduser\(\) [\#328](https://github.com/kivy/buildozer/pull/328) ([kived](https://github.com/kived)) 251 | - use custom source dirs for android\_new [\#324](https://github.com/kivy/buildozer/pull/324) ([kived](https://github.com/kived)) 252 | - use p4a revamp --storage-dir option [\#323](https://github.com/kivy/buildozer/pull/323) ([kived](https://github.com/kived)) 253 | - add adb and p4a commands to android/android\_new [\#322](https://github.com/kivy/buildozer/pull/322) ([kived](https://github.com/kived)) 254 | - fix py3 str has no decode issue [\#321](https://github.com/kivy/buildozer/pull/321) ([kived](https://github.com/kived)) 255 | - let p4a revamp handle pure python requirements [\#320](https://github.com/kivy/buildozer/pull/320) ([kived](https://github.com/kived)) 256 | - fix icons for ios target [\#319](https://github.com/kivy/buildozer/pull/319) ([kived](https://github.com/kived)) 257 | - support using custom kivy-ios source dir [\#318](https://github.com/kivy/buildozer/pull/318) ([kived](https://github.com/kived)) 258 | - disable bitcode for ios target [\#317](https://github.com/kivy/buildozer/pull/317) ([kived](https://github.com/kived)) 259 | - Add window option for target android\_new [\#315](https://github.com/kivy/buildozer/pull/315) ([pythonic64](https://github.com/pythonic64)) 260 | - fix usage exception [\#311](https://github.com/kivy/buildozer/pull/311) ([kived](https://github.com/kived)) 261 | - add python3 compatibility to verbose output for android build \(\#221\) [\#303](https://github.com/kivy/buildozer/pull/303) ([pohmelie](https://github.com/pohmelie)) 262 | - Allow app title to contain Unicode characters [\#293](https://github.com/kivy/buildozer/pull/293) ([udiboy1209](https://github.com/udiboy1209)) 263 | - use ios-deploy version 1.7.0 [\#291](https://github.com/kivy/buildozer/pull/291) ([cbenhagen](https://github.com/cbenhagen)) 264 | - Add spec option to skip automated update of installed android package [\#290](https://github.com/kivy/buildozer/pull/290) ([pastcompute](https://github.com/pastcompute)) 265 | - Fix issues with android.p4a\_dir spec file property [\#288](https://github.com/kivy/buildozer/pull/288) ([pastcompute](https://github.com/pastcompute)) 266 | - Remove pip --download-cache flag \(fixes \#279\) [\#282](https://github.com/kivy/buildozer/pull/282) ([cbenhagen](https://github.com/cbenhagen)) 267 | - put bin/ in builddir if specified in buildozer.spec [\#274](https://github.com/kivy/buildozer/pull/274) ([jabbalaci](https://github.com/jabbalaci)) 268 | - Implement source.include\_patterns [\#269](https://github.com/kivy/buildozer/pull/269) ([udiboy1209](https://github.com/udiboy1209)) 269 | - Updated Licence Year [\#266](https://github.com/kivy/buildozer/pull/266) ([CodeMaxx](https://github.com/CodeMaxx)) 270 | - fix android.branch option [\#250](https://github.com/kivy/buildozer/pull/250) ([tshirtman](https://github.com/tshirtman)) 271 | 272 | ## [v0.31](https://github.com/kivy/buildozer/tree/v0.31) (2016-01-07) 273 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.30...v0.31) 274 | 275 | **Closed issues:** 276 | 277 | - Logo aspect ratio problem [\#263](https://github.com/kivy/buildozer/issues/263) 278 | - Is there a way to seperate building environment and building apk? [\#259](https://github.com/kivy/buildozer/issues/259) 279 | - buildozer must be ran with sudo [\#258](https://github.com/kivy/buildozer/issues/258) 280 | - Invalid NDK platform [\#253](https://github.com/kivy/buildozer/issues/253) 281 | - Q:compile error [\#252](https://github.com/kivy/buildozer/issues/252) 282 | - Please update SDK url [\#249](https://github.com/kivy/buildozer/issues/249) 283 | - java.lang.NoSuchMethodException: isSupportChangeBadgeByCallMethod \[\] [\#243](https://github.com/kivy/buildozer/issues/243) 284 | - AttributeError: 'NoneType' object has no attribute 'group' [\#242](https://github.com/kivy/buildozer/issues/242) 285 | - Error: Flag '-a' is not valid for 'list sdk'. [\#241](https://github.com/kivy/buildozer/issues/241) 286 | - Provide custom path for android SDK to buildozer [\#237](https://github.com/kivy/buildozer/issues/237) 287 | - kivy examples seem to need \_\_version\_\_ [\#236](https://github.com/kivy/buildozer/issues/236) 288 | - pyliblo [\#235](https://github.com/kivy/buildozer/issues/235) 289 | 290 | **Merged pull requests:** 291 | 292 | - OS X Target for Bulldozer [\#262](https://github.com/kivy/buildozer/pull/262) ([akshayaurora](https://github.com/akshayaurora)) 293 | - kill easy\_install [\#244](https://github.com/kivy/buildozer/pull/244) ([techtonik](https://github.com/techtonik)) 294 | - install requires virtualenv [\#239](https://github.com/kivy/buildozer/pull/239) ([cbenhagen](https://github.com/cbenhagen)) 295 | - Fixed Space in app path issue. Fixes \#13 [\#231](https://github.com/kivy/buildozer/pull/231) ([dvenkatsagar](https://github.com/dvenkatsagar)) 296 | 297 | ## [0.30](https://github.com/kivy/buildozer/tree/0.30) (2015-10-04) 298 | [Full Changelog](https://github.com/kivy/buildozer/compare/v0.29...0.30) 299 | 300 | **Closed issues:** 301 | 302 | - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#234](https://github.com/kivy/buildozer/issues/234) 303 | - Cannot use numpy with buildozer [\#232](https://github.com/kivy/buildozer/issues/232) 304 | - Problem downloading ndk version \> r9d [\#229](https://github.com/kivy/buildozer/issues/229) 305 | - Error likely to missing 32 bit packages [\#228](https://github.com/kivy/buildozer/issues/228) 306 | - Bulldozer can't download new ndks 10x... [\#227](https://github.com/kivy/buildozer/issues/227) 307 | - Error while trying to install Buildozer in Windows 10 [\#225](https://github.com/kivy/buildozer/issues/225) 308 | - Making reverse engineering .apk harder [\#224](https://github.com/kivy/buildozer/issues/224) 309 | - Buildozer wont compile libraries with cython 0.23 or 0.22 [\#223](https://github.com/kivy/buildozer/issues/223) 310 | - These are the errors I get when I try to package the file... [\#222](https://github.com/kivy/buildozer/issues/222) 311 | - Buildozer installs platform despite setting ndk & sdk paths [\#220](https://github.com/kivy/buildozer/issues/220) 312 | - Can't find config.ini buildozer solution [\#219](https://github.com/kivy/buildozer/issues/219) 313 | - Ant error: SDK does not have any Build Tools installed [\#218](https://github.com/kivy/buildozer/issues/218) 314 | - Buildozer fails because of build-tools package name [\#217](https://github.com/kivy/buildozer/issues/217) 315 | - ImportError: No module named pygments [\#216](https://github.com/kivy/buildozer/issues/216) 316 | - buildozer android camera [\#215](https://github.com/kivy/buildozer/issues/215) 317 | - Error when first time Building apk [\#212](https://github.com/kivy/buildozer/issues/212) 318 | - cannot import name spawnu [\#211](https://github.com/kivy/buildozer/issues/211) 319 | - Buildozer recompiles p4a when a custom for of plyer is used. [\#210](https://github.com/kivy/buildozer/issues/210) 320 | - Add android.ant\_path to default.spec [\#209](https://github.com/kivy/buildozer/issues/209) 321 | - Problems with adding wav, ogg and ttf files [\#208](https://github.com/kivy/buildozer/issues/208) 322 | - cython issue with kivy and buildozer development versions [\#207](https://github.com/kivy/buildozer/issues/207) 323 | - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#205](https://github.com/kivy/buildozer/issues/205) 324 | - Buildozer isn't building if I try to include some requirements [\#195](https://github.com/kivy/buildozer/issues/195) 325 | - Cant build APK for android.api = 10 [\#193](https://github.com/kivy/buildozer/issues/193) 326 | - Doc error: "buildozer clean" does not exist [\#189](https://github.com/kivy/buildozer/issues/189) 327 | - Can't install pillow requirement [\#188](https://github.com/kivy/buildozer/issues/188) 328 | - \#error from Cython compilation [\#150](https://github.com/kivy/buildozer/issues/150) 329 | - Space in app path path name causes ./distribute -m kivy to fail [\#13](https://github.com/kivy/buildozer/issues/13) 330 | 331 | **Merged pull requests:** 332 | 333 | - Changed p4a download to pull old\_toolchain branch [\#233](https://github.com/kivy/buildozer/pull/233) ([inclement](https://github.com/inclement)) 334 | - Added support for downloading and handling android ndk r10 versions. Fixes \#229 and \#227 [\#230](https://github.com/kivy/buildozer/pull/230) ([dvenkatsagar](https://github.com/dvenkatsagar)) 335 | - make \_read\_version\_subdir return parse\('0'\) instead of \[0\], otherwise… [\#206](https://github.com/kivy/buildozer/pull/206) ([denys-duchier](https://github.com/denys-duchier)) 336 | 337 | ## [v0.29](https://github.com/kivy/buildozer/tree/v0.29) (2015-06-01) 338 | [Full Changelog](https://github.com/kivy/buildozer/compare/v0.27...v0.29) 339 | 340 | **Fixed bugs:** 341 | 342 | - version problem with split [\#201](https://github.com/kivy/buildozer/issues/201) 343 | 344 | **Closed issues:** 345 | 346 | - buildozer android release hangs at "compile platform" [\#199](https://github.com/kivy/buildozer/issues/199) 347 | - Hang up at Fetching https://dl-ssl.google.com/android/repository/addons\_list-2.xml [\#198](https://github.com/kivy/buildozer/issues/198) 348 | - Python 3 Import error on urllib.request. [\#187](https://github.com/kivy/buildozer/issues/187) 349 | 350 | **Merged pull requests:** 351 | 352 | - needs testing, should fix \#201 using pypa implementation of PEP440 [\#202](https://github.com/kivy/buildozer/pull/202) ([tshirtman](https://github.com/tshirtman)) 353 | - check for complete dist instead of dist dir [\#197](https://github.com/kivy/buildozer/pull/197) ([kived](https://github.com/kived)) 354 | - fix ios targets xcode command [\#194](https://github.com/kivy/buildozer/pull/194) ([cbenhagen](https://github.com/cbenhagen)) 355 | - Windows fix [\#192](https://github.com/kivy/buildozer/pull/192) ([jaynakus](https://github.com/jaynakus)) 356 | - some python 3 compatibility [\#191](https://github.com/kivy/buildozer/pull/191) ([pohmelie](https://github.com/pohmelie)) 357 | - allow custom source folders in buildozer.spec [\#185](https://github.com/kivy/buildozer/pull/185) ([kived](https://github.com/kived)) 358 | - use upstream pexpect instead of shipping it [\#176](https://github.com/kivy/buildozer/pull/176) ([tshirtman](https://github.com/tshirtman)) 359 | 360 | ## [v0.27](https://github.com/kivy/buildozer/tree/v0.27) (2015-03-08) 361 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.26...v0.27) 362 | 363 | **Closed issues:** 364 | 365 | - subprocess.CalledProcessError: Command '\['ant', 'debug'\]' returned non-zero exit status 1 [\#183](https://github.com/kivy/buildozer/issues/183) 366 | - Buildozer get error during packaging for android [\#182](https://github.com/kivy/buildozer/issues/182) 367 | - Bug with android.p4a\_whitelist in buildozer.spec file. [\#180](https://github.com/kivy/buildozer/issues/180) 368 | - You need an option for git https [\#178](https://github.com/kivy/buildozer/issues/178) 369 | - Buildozer .apk file creation issue [\#177](https://github.com/kivy/buildozer/issues/177) 370 | - sudo buildozer Fails [\#174](https://github.com/kivy/buildozer/issues/174) 371 | - Buildozer iOS Apps Won't Open [\#171](https://github.com/kivy/buildozer/issues/171) 372 | - always show python-for-android output on failure [\#170](https://github.com/kivy/buildozer/issues/170) 373 | - Buildozer tries to install android sdk every time you try to compile an android application. [\#169](https://github.com/kivy/buildozer/issues/169) 374 | - automatic installation of android sdk fails due to unicode parsing error [\#166](https://github.com/kivy/buildozer/issues/166) 375 | - Move from fruitstrap to ios-deploy [\#107](https://github.com/kivy/buildozer/issues/107) 376 | - buildozer ios debug build fails on MacOS Mavericks [\#83](https://github.com/kivy/buildozer/issues/83) 377 | - gdb doesn't work anymore with Xcode 5 [\#54](https://github.com/kivy/buildozer/issues/54) 378 | - buildozer ios debug deploy fails on running fruitstrap at 70% with error AMDeviceInstallApplication failed [\#9](https://github.com/kivy/buildozer/issues/9) 379 | 380 | **Merged pull requests:** 381 | 382 | - fix black text in log [\#184](https://github.com/kivy/buildozer/pull/184) ([kived](https://github.com/kived)) 383 | 384 | ## [0.26](https://github.com/kivy/buildozer/tree/0.26) (2015-01-28) 385 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.25...0.26) 386 | 387 | **Merged pull requests:** 388 | 389 | - ensure whitelist always has a list [\#172](https://github.com/kivy/buildozer/pull/172) ([kived](https://github.com/kived)) 390 | 391 | ## [0.25](https://github.com/kivy/buildozer/tree/0.25) (2015-01-27) 392 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.24...0.25) 393 | 394 | ## [0.24](https://github.com/kivy/buildozer/tree/0.24) (2015-01-27) 395 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.23...0.24) 396 | 397 | ## [0.23](https://github.com/kivy/buildozer/tree/0.23) (2015-01-27) 398 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.22...0.23) 399 | 400 | ## [0.22](https://github.com/kivy/buildozer/tree/0.22) (2015-01-27) 401 | [Full Changelog](https://github.com/kivy/buildozer/compare/v0.21...0.22) 402 | 403 | ## [v0.21](https://github.com/kivy/buildozer/tree/v0.21) (2015-01-14) 404 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.19...v0.21) 405 | 406 | **Merged pull requests:** 407 | 408 | - removed some indentation in example info, added to actual comments inste... [\#168](https://github.com/kivy/buildozer/pull/168) ([chozabu](https://github.com/chozabu)) 409 | 410 | ## [0.19](https://github.com/kivy/buildozer/tree/0.19) (2014-12-17) 411 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.18...0.19) 412 | 413 | ## [0.18](https://github.com/kivy/buildozer/tree/0.18) (2014-12-17) 414 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.17...0.18) 415 | 416 | **Closed issues:** 417 | 418 | - buildozer can't download python libs due to ssl certificate check fail [\#164](https://github.com/kivy/buildozer/issues/164) 419 | - Buildozer feature redirect .buildozer folder outside your project [\#162](https://github.com/kivy/buildozer/issues/162) 420 | - Buildozer fails on clean build [\#161](https://github.com/kivy/buildozer/issues/161) 421 | - pjnius build fails on Arch Linux when requiring netifaces [\#159](https://github.com/kivy/buildozer/issues/159) 422 | - error compiling with buildozer [\#158](https://github.com/kivy/buildozer/issues/158) 423 | - C compiler cannot create executables [\#152](https://github.com/kivy/buildozer/issues/152) 424 | - Requirements needing commas instead of spaces \(like p4a\) is non-obvious [\#147](https://github.com/kivy/buildozer/issues/147) 425 | 426 | **Merged pull requests:** 427 | 428 | - fix build error and allow redirecting build folder [\#163](https://github.com/kivy/buildozer/pull/163) ([olymk2](https://github.com/olymk2)) 429 | - Remove duplicated checkbin\(\). [\#160](https://github.com/kivy/buildozer/pull/160) ([attakei](https://github.com/attakei)) 430 | - added note about buildozer not having anything to do with buildozer.io [\#157](https://github.com/kivy/buildozer/pull/157) ([nickyspag](https://github.com/nickyspag)) 431 | - Fixed logic to compare with “non installed” with “minor version upped" [\#156](https://github.com/kivy/buildozer/pull/156) ([attakei](https://github.com/attakei)) 432 | - Set "UTF-8" to java file.encoding for android update command explicitly [\#155](https://github.com/kivy/buildozer/pull/155) ([attakei](https://github.com/attakei)) 433 | - added example to default.spec requirements showing comma seperation [\#148](https://github.com/kivy/buildozer/pull/148) ([chozabu](https://github.com/chozabu)) 434 | 435 | ## [0.17](https://github.com/kivy/buildozer/tree/0.17) (2014-09-22) 436 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.16...0.17) 437 | 438 | ## [0.16](https://github.com/kivy/buildozer/tree/0.16) (2014-09-22) 439 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.15...0.16) 440 | 441 | **Closed issues:** 442 | 443 | - `install\_android\_packages` is too slow to run in china. [\#143](https://github.com/kivy/buildozer/issues/143) 444 | - Buildozer setup.py fails with Module ImportError [\#140](https://github.com/kivy/buildozer/issues/140) 445 | - buildozer downloads Android SDK 20 during every call to deploy app [\#137](https://github.com/kivy/buildozer/issues/137) 446 | - Buildozerv0.15: lib/pexpect.py is not Python 3 compatable [\#131](https://github.com/kivy/buildozer/issues/131) 447 | - Keep on gettting version error [\#129](https://github.com/kivy/buildozer/issues/129) 448 | - arm-linux-androideabi-gcc: fatal error: no input files [\#127](https://github.com/kivy/buildozer/issues/127) 449 | - I am new to python and buildozer, using buildozer to compile my first android app [\#125](https://github.com/kivy/buildozer/issues/125) 450 | - I am new to python and buildozer, using buildozer to compile my first android app, [\#124](https://github.com/kivy/buildozer/issues/124) 451 | - Command Failed [\#122](https://github.com/kivy/buildozer/issues/122) 452 | - Exception: Cython cythonnot found [\#120](https://github.com/kivy/buildozer/issues/120) 453 | - Enable use for packaging OSX apps [\#114](https://github.com/kivy/buildozer/issues/114) 454 | - Errors on 'buildozer android debug deploy run' [\#113](https://github.com/kivy/buildozer/issues/113) 455 | - Fail to download Android SDK in Linux and Python 3.3 [\#110](https://github.com/kivy/buildozer/issues/110) 456 | - Unable to add "requirements" buildozer.spec [\#109](https://github.com/kivy/buildozer/issues/109) 457 | - TypeError: 'encoding' is an invalid keyword argument for this function [\#106](https://github.com/kivy/buildozer/issues/106) 458 | - Custom activity [\#33](https://github.com/kivy/buildozer/issues/33) 459 | - Buildozer fails to install on Windows [\#27](https://github.com/kivy/buildozer/issues/27) 460 | - support blacklist changes in python-for-android [\#17](https://github.com/kivy/buildozer/issues/17) 461 | 462 | **Merged pull requests:** 463 | 464 | - Test in file\_rename if target directory exists. [\#144](https://github.com/kivy/buildozer/pull/144) ([droundy](https://github.com/droundy)) 465 | - Fix for android.library\_references path issue [\#139](https://github.com/kivy/buildozer/pull/139) ([excessivedemon](https://github.com/excessivedemon)) 466 | - Specs doc revision [\#134](https://github.com/kivy/buildozer/pull/134) ([dessant](https://github.com/dessant)) 467 | - Make pexpect.py Python 3 Compatable [\#133](https://github.com/kivy/buildozer/pull/133) ([FeralBytes](https://github.com/FeralBytes)) 468 | - Added check for buildozer running as root [\#128](https://github.com/kivy/buildozer/pull/128) ([inclement](https://github.com/inclement)) 469 | - Add link to the right android python project [\#119](https://github.com/kivy/buildozer/pull/119) ([techtonik](https://github.com/techtonik)) 470 | - Execute buildozer as "python -m buildozer" [\#118](https://github.com/kivy/buildozer/pull/118) ([techtonik](https://github.com/techtonik)) 471 | - Fix \#115 [\#116](https://github.com/kivy/buildozer/pull/116) ([manuelbua](https://github.com/manuelbua)) 472 | 473 | ## [0.15](https://github.com/kivy/buildozer/tree/0.15) (2014-06-02) 474 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.14...0.15) 475 | 476 | **Closed issues:** 477 | 478 | - Do not set permissions \(ug+x\) if already set [\#115](https://github.com/kivy/buildozer/issues/115) 479 | - UTF-8 Encoding Error, \_\_init.py\_\_ 0.15-dev [\#108](https://github.com/kivy/buildozer/issues/108) 480 | - incorrect minapi android manifest value [\#93](https://github.com/kivy/buildozer/issues/93) 481 | - libpython wait4 linker error [\#92](https://github.com/kivy/buildozer/issues/92) 482 | - fcntl import error [\#88](https://github.com/kivy/buildozer/issues/88) 483 | - No Python 3 Support [\#84](https://github.com/kivy/buildozer/issues/84) 484 | - Uncaught exception on missing cython [\#80](https://github.com/kivy/buildozer/issues/80) 485 | - Where are custom python-for-android recipes meant to go? [\#76](https://github.com/kivy/buildozer/issues/76) 486 | - Error compiling Cython file: [\#73](https://github.com/kivy/buildozer/issues/73) 487 | - Zlib still giving issues on Ubuntu 13.04 [\#72](https://github.com/kivy/buildozer/issues/72) 488 | - DBAccessError permission denied in app [\#71](https://github.com/kivy/buildozer/issues/71) 489 | - Selective update of depencencies [\#70](https://github.com/kivy/buildozer/issues/70) 490 | - 32-bit SDK installed on 64-bit system [\#69](https://github.com/kivy/buildozer/issues/69) 491 | - wrong version regex [\#67](https://github.com/kivy/buildozer/issues/67) 492 | - sdk update fails on license question [\#66](https://github.com/kivy/buildozer/issues/66) 493 | - x86 and armeabi-v7 libs [\#63](https://github.com/kivy/buildozer/issues/63) 494 | - Missing dependenced during compilation [\#59](https://github.com/kivy/buildozer/issues/59) 495 | - Bad magic number when reading generated state.db file in VMware Ubuntu guest [\#42](https://github.com/kivy/buildozer/issues/42) 496 | - x86 apk support on buildozer [\#11](https://github.com/kivy/buildozer/issues/11) 497 | 498 | **Merged pull requests:** 499 | 500 | - Ignore UTF-8 decoding errors. Closes \#108 [\#112](https://github.com/kivy/buildozer/pull/112) ([cbenhagen](https://github.com/cbenhagen)) 501 | - chmod ug+x android\_cmd [\#111](https://github.com/kivy/buildozer/pull/111) ([cbenhagen](https://github.com/cbenhagen)) 502 | - p4a whitelist [\#98](https://github.com/kivy/buildozer/pull/98) ([b3ni](https://github.com/b3ni)) 503 | 504 | ## [0.14](https://github.com/kivy/buildozer/tree/0.14) (2014-04-20) 505 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.13...0.14) 506 | 507 | ## [0.13](https://github.com/kivy/buildozer/tree/0.13) (2014-04-20) 508 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.12...0.13) 509 | 510 | ## [0.12](https://github.com/kivy/buildozer/tree/0.12) (2014-04-20) 511 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.11...0.12) 512 | 513 | ## [0.11](https://github.com/kivy/buildozer/tree/0.11) (2014-04-20) 514 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.10...0.11) 515 | 516 | **Closed issues:** 517 | 518 | - Text provider [\#105](https://github.com/kivy/buildozer/issues/105) 519 | - No installation instructions [\#104](https://github.com/kivy/buildozer/issues/104) 520 | 521 | ## [0.10](https://github.com/kivy/buildozer/tree/0.10) (2014-04-09) 522 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.9...0.10) 523 | 524 | **Closed issues:** 525 | 526 | - Android SDK installation not working anymore [\#101](https://github.com/kivy/buildozer/issues/101) 527 | - Buildozer almost completes and then errors saying file exists [\#99](https://github.com/kivy/buildozer/issues/99) 528 | - Java compilernot found [\#95](https://github.com/kivy/buildozer/issues/95) 529 | - Absolute path problem [\#91](https://github.com/kivy/buildozer/issues/91) 530 | - Error when running: buildozer --verbose android debug deploy run [\#89](https://github.com/kivy/buildozer/issues/89) 531 | - buildozer.spec passing requirements [\#87](https://github.com/kivy/buildozer/issues/87) 532 | - debugging "Command failed" is tedious [\#86](https://github.com/kivy/buildozer/issues/86) 533 | - No module named sqlite3 [\#56](https://github.com/kivy/buildozer/issues/56) 534 | - Garden packages are unsupported [\#39](https://github.com/kivy/buildozer/issues/39) 535 | - python-for-android repo is hard-coded in buildozer [\#37](https://github.com/kivy/buildozer/issues/37) 536 | - virtualenv-2.7 hardcoded [\#22](https://github.com/kivy/buildozer/issues/22) 537 | - Buildozer error no build.py [\#21](https://github.com/kivy/buildozer/issues/21) 538 | 539 | **Merged pull requests:** 540 | 541 | - Fixed garden install for newer virtualenvs [\#100](https://github.com/kivy/buildozer/pull/100) ([brousch](https://github.com/brousch)) 542 | - fix ln if soft link existed [\#96](https://github.com/kivy/buildozer/pull/96) ([pengjia](https://github.com/pengjia)) 543 | - Added realpath modifier to p4a\_dir token [\#94](https://github.com/kivy/buildozer/pull/94) ([inclement](https://github.com/inclement)) 544 | - Documented env var checking and fixed a bug in the p4a\_dir check [\#85](https://github.com/kivy/buildozer/pull/85) ([inclement](https://github.com/inclement)) 545 | - Delete dist dir if running distribute.sh [\#81](https://github.com/kivy/buildozer/pull/81) ([inclement](https://github.com/inclement)) 546 | - implement the `clean` command. [\#79](https://github.com/kivy/buildozer/pull/79) ([akshayaurora](https://github.com/akshayaurora)) 547 | - Garden requirements [\#41](https://github.com/kivy/buildozer/pull/41) ([Ian-Foote](https://github.com/Ian-Foote)) 548 | 549 | ## [0.9](https://github.com/kivy/buildozer/tree/0.9) (2014-02-13) 550 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.8...0.9) 551 | 552 | **Closed issues:** 553 | 554 | - Command failed: ./distribute.sh -m "kivy" error message [\#77](https://github.com/kivy/buildozer/issues/77) 555 | - Error importing \_scproxy [\#68](https://github.com/kivy/buildozer/issues/68) 556 | - Package names beginning with a number cause an obscure crash with an unclear error message [\#64](https://github.com/kivy/buildozer/issues/64) 557 | - failing to compile sample android app with buildozer [\#61](https://github.com/kivy/buildozer/issues/61) 558 | - Default android.sdk setting causes sensor rotate on Android to fail [\#32](https://github.com/kivy/buildozer/issues/32) 559 | - Add wakelock to options [\#31](https://github.com/kivy/buildozer/issues/31) 560 | 561 | **Merged pull requests:** 562 | 563 | - Updated Android NDK default version to 9c [\#82](https://github.com/kivy/buildozer/pull/82) ([brousch](https://github.com/brousch)) 564 | - Add 'bin' to suggested default directory excludes [\#78](https://github.com/kivy/buildozer/pull/78) ([joseph-jnl](https://github.com/joseph-jnl)) 565 | - Clarified wording in README [\#75](https://github.com/kivy/buildozer/pull/75) ([inclement](https://github.com/inclement)) 566 | - Check for package name starting with number [\#65](https://github.com/kivy/buildozer/pull/65) ([inclement](https://github.com/inclement)) 567 | - \[FIX\] Detect 32/64 bit on Windows, to download Android NDK [\#62](https://github.com/kivy/buildozer/pull/62) ([alanjds](https://github.com/alanjds)) 568 | - Add ability to choose python-for-android directory [\#60](https://github.com/kivy/buildozer/pull/60) ([inclement](https://github.com/inclement)) 569 | - Added --private and --dir Android storage option [\#58](https://github.com/kivy/buildozer/pull/58) ([brousch](https://github.com/brousch)) 570 | - Added a 'serve' command to serve bin/ over SimpleHTTPServer [\#49](https://github.com/kivy/buildozer/pull/49) ([brousch](https://github.com/brousch)) 571 | 572 | ## [0.8](https://github.com/kivy/buildozer/tree/0.8) (2013-10-29) 573 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.7...0.8) 574 | 575 | **Fixed bugs:** 576 | 577 | - \_patch\_application\_sources breaks from \_\_future\_\_ imports [\#35](https://github.com/kivy/buildozer/issues/35) 578 | 579 | **Closed issues:** 580 | 581 | - unresolved domain: pygame.org [\#34](https://github.com/kivy/buildozer/issues/34) 582 | 583 | **Merged pull requests:** 584 | 585 | - Update default Android NDK to r9 [\#53](https://github.com/kivy/buildozer/pull/53) ([brousch](https://github.com/brousch)) 586 | - Added android.wakelock option [\#51](https://github.com/kivy/buildozer/pull/51) ([brousch](https://github.com/brousch)) 587 | - Fixed another 'Unknown' typo [\#48](https://github.com/kivy/buildozer/pull/48) ([brousch](https://github.com/brousch)) 588 | - Fixed spelling of 'Unknown' [\#47](https://github.com/kivy/buildozer/pull/47) ([brousch](https://github.com/brousch)) 589 | - Fixed missing 'r' on ANDROIDNDKVER environment export [\#46](https://github.com/kivy/buildozer/pull/46) ([brousch](https://github.com/brousch)) 590 | - make sure android.branch works with fresh clone [\#44](https://github.com/kivy/buildozer/pull/44) ([akshayaurora](https://github.com/akshayaurora)) 591 | - Fixed a typo in setdefault description [\#40](https://github.com/kivy/buildozer/pull/40) ([nithin-bose](https://github.com/nithin-bose)) 592 | - Package paths [\#38](https://github.com/kivy/buildozer/pull/38) ([Ian-Foote](https://github.com/Ian-Foote)) 593 | - add applibs in path for service too [\#26](https://github.com/kivy/buildozer/pull/26) ([tshirtman](https://github.com/tshirtman)) 594 | - fix distribute install before installing every dependencies, fix a few i... [\#25](https://github.com/kivy/buildozer/pull/25) ([tshirtman](https://github.com/tshirtman)) 595 | 596 | ## [0.7](https://github.com/kivy/buildozer/tree/0.7) (2013-09-11) 597 | [Full Changelog](https://github.com/kivy/buildozer/compare/0.2...0.7) 598 | 599 | **Closed issues:** 600 | 601 | - Builds fail on Ubuntu 13.04 with zlib.h missing [\#18](https://github.com/kivy/buildozer/issues/18) 602 | - "buildozer android update" fails with an error about android.branch [\#12](https://github.com/kivy/buildozer/issues/12) 603 | - Problem Ubuntu compilation on network drive [\#10](https://github.com/kivy/buildozer/issues/10) 604 | - \[app\] "android.permission" contain an unknown permission [\#6](https://github.com/kivy/buildozer/issues/6) 605 | - buildozer on ios fails at: Command failed: tools/build-all.sh [\#5](https://github.com/kivy/buildozer/issues/5) 606 | - Automatically installing Android SDK fails in file\_rename called from \_install\_android\_sdk [\#4](https://github.com/kivy/buildozer/issues/4) 607 | - buildozer does not support ~ in android.sdk\_path [\#3](https://github.com/kivy/buildozer/issues/3) 608 | 609 | **Merged pull requests:** 610 | 611 | - Fix typo 'versionning' -\> 'versioning'. [\#29](https://github.com/kivy/buildozer/pull/29) ([Ian-Foote](https://github.com/Ian-Foote)) 612 | - Fixed hard-coded Android API 14 [\#23](https://github.com/kivy/buildozer/pull/23) ([brousch](https://github.com/brousch)) 613 | - Fixed \#18: Builds fail on Ubuntu 13.04 with zlib.h missing. [\#20](https://github.com/kivy/buildozer/pull/20) ([roskakori](https://github.com/roskakori)) 614 | - Europython sprint updates [\#19](https://github.com/kivy/buildozer/pull/19) ([fabiankreutz](https://github.com/fabiankreutz)) 615 | - copy the generated apk back from remote [\#16](https://github.com/kivy/buildozer/pull/16) ([akshayaurora](https://github.com/akshayaurora)) 616 | - android.add\_jars config option [\#15](https://github.com/kivy/buildozer/pull/15) ([bob-the-hamster](https://github.com/bob-the-hamster)) 617 | - Ouya support [\#14](https://github.com/kivy/buildozer/pull/14) ([bob-the-hamster](https://github.com/bob-the-hamster)) 618 | 619 | ## [0.2](https://github.com/kivy/buildozer/tree/0.2) (2012-12-20) 620 | 621 | 622 | \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* --------------------------------------------------------------------------------