Ultimas do CanalQb

CanalQb - Python - Buildozer - Comandos para o SPEC

@CanalQb


Python - Kivy - Buildozer - Comandos Buildozer.SPEC



CanalQb



Sempre crie uma frase de segurança única para jogos, Airdrops e qualquer outra coisa de origem desconhecida, em vez de usar sua carteira principal.



Ainda estou montando este post, vou primeiro inserir os comandos, e depois tentar organizar da melhor forma possivel

Primeiro vamos ver as sessões que podemos criar, logo na sequencia alguns exemplos de montagem

Seções Principais do buildozer.spec

  1. [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.
  2. [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.
  3. [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.
  4. [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.
  5. [ios]:

    • Configurações específicas para a construção do aplicativo iOS, semelhante à seção Android.
  6. [include]:

    • Aqui você pode incluir arquivos adicionais ou diretórios que devem ser copiados para o APK ou o pacote final.
  7. [exclude]:

    • Para listar arquivos ou diretórios que devem ser excluídos da construção final.
  8. [environment]:

    • Para definir variáveis de ambiente que podem ser usadas durante a construção.
  9. [service]:

    • Para definir serviços que você deseja que o aplicativo utilize.
  10. [metadata]:

    • Para definir metadados personalizados que podem ser usados no manifest do aplicativo.

Exemplo de monstagem do buildozer.spec

Exemplo de Estrutura
Aqui está uma estrutura simples para ilustrar como as seções podem ser organizadas:
 
[app]
title = MeuApp
package.name = meuapp
version = 1.0
requirements = python3, kivy
icon = ./imagens/icon.png
permission = android.permission.INTERNET

[buildozer]
log_level = 2

[android]
android.api = 31
android.minapi = 21
android.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


Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.

var disqus_shortname = ''; (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); ]]>