
Python - Kivy - Buildozer - Comandos Buildozer.SPEC
Ainda estou montando este post, vou primeiro inserir os comandos, e depois tentar organizar da melhor forma possivel
Seções Principais do buildozer.spec
[app]:
- Esta é a seção principal onde você define as configurações do seu aplicativo, como título, versão, pacote, requisitos, permissões, ícone, etc.
[buildozer]:
- Configurações globais do Buildozer, como o diretório de saída, opções de compilação e configurações específicas do ambiente.
[requirements]:
- Pode incluir dependências específicas que você deseja que o Buildozer instale. Normalmente, isso é definido dentro da seção
[app], mas pode haver uma seção separada para definições mais complexas.
- Pode incluir dependências específicas que você deseja que o Buildozer instale. Normalmente, isso é definido dentro da seção
[android]:
- Configurações específicas para a construção do aplicativo Android, como versões de SDK, permissões, opções de compilação, etc.
[ios]:
- Configurações específicas para a construção do aplicativo iOS, semelhante à seção Android.
[include]:
- Aqui você pode incluir arquivos adicionais ou diretórios que devem ser copiados para o APK ou o pacote final.
[exclude]:
- Para listar arquivos ou diretórios que devem ser excluídos da construção final.
[environment]:
- Para definir variáveis de ambiente que podem ser usadas durante a construção.
[service]:
- Para definir serviços que você deseja que o aplicativo utilize.
[metadata]:
- Para definir metadados personalizados que podem ser usados no manifest do aplicativo.
Exemplo de monstagem do buildozer.spec
[app]title = MeuApppackage.name = meuappversion = 1.0requirements = python3, kivyicon = ./imagens/icon.pngpermission = android.permission.INTERNET[buildozer]log_level = 2[android]android.api = 31android.minapi = 21android.ndk = 21b[ios]ios.kivy_version = 2.0.0[include]include = ./libs/*.so[exclude]exclude = ./tests/*[environment]MY_ENV_VAR = my_value
Vamos tentar apresentar o maximo de informações possiveis para você decidir o que usar.
1. [app]
- title: Nome do aplicativo.
title = CanalQb Puzzle 67 - package.name: Nome do pacote em formato Java.
package.name = canalqb - package.domain: Domínio do pacote.
package.domain = org.canalqb - version: Versão do aplicativo.
version = 1.0.0 - requirements: Dependências do aplicativo.
requirements = python3, kivy, requests - icon: Caminho para o ícone do aplicativo.
icon = ./imagens/icon.png - permission: Permissões necessárias (pode ser repetido).
permission = android.permission.INTERNET - orientation: Orientação da tela.
orientation = portrait - bootstrap: Bootstrap a ser usado.
bootstrap = sdl2 - private: Diretório com arquivos do projeto.
private = ./meu_app - meta-data: Metadados personalizados.
meta-data = key=value - presplash: Imagem de carregamento.
presplash = ./imagens/presplash.png - presplash-color: Cor de fundo da tela de carregamento.
presplash-color = #FFFFFF - wakelock: Impedir o modo de suspensão.
wakelock = True - window: Se o aplicativo cobre a barra de status.
window = True - add-jar: Caminho para arquivos JAR a serem incluídos.
add-jar = ./libs/minha_lib.jar - add-source: Diretório de código-fonte adicional.
add-source = ./src - intent-filters: Arquivo XML com filtros de intenção.
intent-filters = ./filters.xml - version.code: Código de versão do aplicativo.
version.code = 1 - package.category: Categoria do aplicativo.
package.category = Game - description: Descrição do aplicativo.
description = Um jogo de quebra-cabeça divertido!
2. [buildozer]
- log_level: Nível de detalhamento dos logs.
log_level = 2 - target: Alvo de construção.
target = android - profile: Perfil de construção a ser usado.
profile = default - release: Se a construção é de release.
release = True - build_dir: Diretório para arquivos de construção.
build_dir = ./build - source_dir: Diretório de origem do projeto.
source_dir = ./src - package_dir: Diretório onde o pacote será gerado.
package_dir = ./dist - buildozer_dir: Diretório do Buildozer.
buildozer_dir = ./buildozer - virtualenv: Se um ambiente virtual deve ser usado.
virtualenv = True - keep_build: Manter arquivos de construção.
keep_build = False
3. [android]
- android.api: API do Android a ser utilizada.
android.api = 31 - android.minapi: API mínima suportada.
android.minapi = 21 - android.sdk: Caminho para o SDK do Android.
android.sdk = /path/to/android/sdk - android.ndk: Versão do NDK do Android.
android.ndk = 21b - android.permissions: Permissões adicionais (pode ser repetido).
android.permissions = android.permission.ACCESS_FINE_LOCATION - android.gradle_dependencies: Dependências do Gradle.
android.gradle_dependencies = com.android.support:appcompat-v7:28.0.0 - android.arch: Arquitetura do aplicativo.
android.arch = armeabi-v7a - android.use_androidx: Se deve usar AndroidX.
android.use_androidx = True - android.manifest: Caminho para o AndroidManifest.xml.
android.manifest = ./AndroidManifest.xml - android.debug: Se deve gerar um APK de depuração.
android.debug = True
4. [ios]
- ios.kivy_version: Versão do Kivy a ser utilizada.
ios.kivy_version = 2.0.0 - ios.sdk: Caminho para o SDK do iOS.
ios.sdk = /path/to/ios/sdk - ios.certificate: Certificado para assinatura do aplicativo.
ios.certificate = my_cert.p12 - ios.profile: Perfil de provisionamento.
ios.profile = my_profile.mobileprovision - ios.icon: Caminho para o ícone do iOS.
ios.icon = ./imagens/icon_ios.png - ios.version: Versão do aplicativo para iOS.
ios.version = 1.0.0 - ios.min_version: Versão mínima do iOS suportada.
ios.min_version = 12.0 - ios.dependencies: Dependências específicas do iOS.
ios.dependencies = requests - ios.persistent: Se deve ser persistente após a execução.
ios.persistent = True - ios.entitlements: Caminho para o arquivo de permissões.
ios.entitlements = ./entitlements.plist
5. [include]
- include: Arquivos ou diretórios a serem incluídos na construção (pode ser repetido).
include = ./assets/* - include_patterns: Padrões de inclusão.
include_patterns = *.png, *.jpg - include_files: Listagem de arquivos específicos a serem incluídos.
include_files = ./data/config.json
6. [exclude]
- exclude: Arquivos ou diretórios a serem excluídos da construção (pode ser repetido).
exclude = ./tests/* - exclude_patterns: Padrões de exclusão.
exclude_patterns = *.tmp, *.log - exclude_files: Listagem de arquivos específicos a serem excluídos.
exclude_files = ./data/old_config.json
7. [build]
- debug: Se deve gerar um build de depuração.
debug = True - clean: Se deve limpar o build anterior.
clean = True - update: Se deve atualizar as dependências.
update = True - verbose: Nível de detalhamento do log de construção.
verbose = 1 - quiet: Se deve silenciar os logs.
quiet = False - buildozer_version: Versão do Buildozer utilizada.
buildozer_version = 0.40.0 - build_file: Caminho para o arquivo de construção.
build_file = ./buildozer.spec - extra_reqs: Requisitos adicionais para a construção.
extra_reqs = somepackage - env: Variáveis de ambiente para a construção.
env = MY_VAR=value - log_file: Caminho para o arquivo de log.
log_file = ./build.log
8. [requirements]
- requirements: Dependências do aplicativo (pode ser repetido).
requirements = python3, kivy - requirements_blacklist: Dependências a serem excluídas.
requirements_blacklist = somepackage - requirements_add: Dependências adicionais.
requirements_add = numpy - requirements_custom: Dependências personalizadas.
requirements_custom = my_custom_lib - requirements_test: Dependências para testes.
requirements_test = pytest - requirements_dev: Dependências de desenvolvimento.
requirements_dev = black - requirements_doc: Dependências para documentação.
requirements_doc = sphinx - requirements_linux: Dependências específicas do Linux.
requirements_linux = some_linux_lib - requirements_windows: Dependências específicas do Windows.
requirements_windows = some_windows_lib - requirements_ios: Dependências específicas do iOS.
requirements_ios = some_ios_lib
9. [other]
- other.setting1: Descrição da configuração 1.
other.setting1 = value1 - other.setting2: Descrição da configuração 2.
other.setting2 = value2 - other.setting3: Descrição da configuração 3.
other.setting3 = value3 - other.setting4: Descrição da configuração 4.
other.setting4 = value4 - other.setting5: Descrição da configuração 5.
other.setting5 = value5 - other.setting6: Descrição da configuração 6.
other.setting6 = value6 - other.setting7: Descrição da configuração 7.
other.setting7 = value7 - other.setting8: Descrição da configuração 8.
other.setting8 = value8 - other.setting9: Descrição da configuração 9.
other.setting9 = value9 - other.setting10: Descrição da configuração 10.
other.setting10 = value10

Comentários
Comente só assim vamos crescer juntos!