buildozer/docs/source/specifications.rst
Andre Miras e8b20d5beb 🔥 Drops garden support
Garden are now installed like normal packages, refs:
https://kivy.org/doc/stable/api-kivy.garden.html#update-to-garden-structure
2020-06-11 14:42:28 +02:00

128 lines
4.8 KiB
ReStructuredText

Specifications
==============
This document explains in detail all the configuration tokens you can use in
`buildozer.spec`.
Section [app]
-------------
- `title`: String, title of your application.
It might be possible that some characters are not working depending on the
targeted platform. It's best to try and see if everything works as expected.
Try to avoid too long titles, as they will also not fit in the title
displayed under the icon.
- `package.name`: String, package name.
The Package name is one word with only ASCII characters and/or numbers. It
should not contain any special characters. For example, if your application
is named `Flat Jewels`, the package name can be `flatjewels`.
- `package.domain`: String, package domain.
Package domain is a string that references the company or individual that
did the app. Both domain+name will become your application identifier for
Android and iOS, choose it carefully. As an example, when the Kivy`s team
is publishing an application, the domain starts with `org.kivy`.
- `source.dir`: String, location of your application sources.
The location must be a directory that contains a `main.py` file. It defaults
to the directory where `buildozer.spec` is.
- `source.include_exts`: List, file extensions to include.
By default, not all files in your `source.dir` are included, but only some
of them (`py,png,jpg,kv,atlas`), depending on the extension. Feel free to
add your own extensions, or use an empty value if you want to include
everything.
- `source.exclude_exts`: List, file extensions to exclude.
In contrary to `source.include_exts`, you could include all the files you
want except the ones that end with an extension listed in this token. If
empty, no files will be excluded based on their extensions.
- `source.exclude_dirs`: List, directories to exclude.
Same as `source.exclude_exts`, but for directories. You can exclude your
`tests` and `bin` directory with::
source.exclude_dirs = tests, bin
- `source.exclude_patterns`: List, files to exclude if they match a pattern.
If you have a more complex application layout, you might need a pattern to
exclude files. It also works if you don't have a pattern. For example::
source.exclude_patterns = license,images/originals/*
- `version.regex`: Regex, Regular expression to capture the version in
`version.filename`.
The default capture method of your application version is by grepping a line
like this::
__version__ = "1.0"
The `1.0` will be used as a version.
- `version.filename`: String, defaults to the main.py.
File to use for capturing the version with `version.regex`.
- `version`: String, manual application version.
If you don't want to capture the version, comment out both `version.regex`
and `version.filename`, then put the version you want directly in the
`version` token::
# version.regex =
# version.filename =
version = 1.0
- `requirements`: List, Python modules or extensions that your application
requires.
The requirements can be either a name of a recipe in the Python-for-android
project, or a pure-Python package. For example, if your application requires
Kivy and requests, you need to write::
requirements = kivy,requests
If your application tries to install a Python extension (ie, a Python
package that requires compilation), and the extension doesn't have a recipe
associated to Python-for-android, it will not work. We explicitly disable
the compilation here. If you want to make it work, contribute to the
Python-for-android project by creating a recipe. See :doc:`contribute`.
- `presplash.filename`: String, loading screen of your application.
Presplash is the image shown on the device during application loading.
It is called presplash on Android, and Loading image on iOS. The image might
have different requirements depending the platform. Currently, Buildozer
works well only with Android, iOS support is not great on this.
The image must be a JPG or PNG, preferable with Power-of-two size, e.g., a
512x512 image is perfect to target all the devices. The image is not fitted,
scaled, or anything on the device. If you provide a too-large image, it might
not fit on small screens.
- `icon.filename`: String, icon of your application.
The icon of your application. It must be a PNG of 512x512 size to be able to
cover all the various platform requirements.
- `orientation`: String, orientation of the application.
Indicate the orientation that your application supports. Defaults to
`landscape`, but can be changed to `portrait` or `all`.
- `fullscreen`: Boolean, fullscreen mode.
Defaults to true, your application will run in fullscreen. Means the status
bar will be hidden. If you want to let the user access the status bar,
hour, notifications, use 0 as a value.