gpt4 book ai didi

python - 如何通过 Docker 使用 Buildozer 构建 .aab?

转载 作者:行者123 更新时间:2023-12-04 23:49:49 25 4
gpt4 key购买 nike

我刚刚看到support for AAB files刚刚在Python for Android (p4a) 中介绍过.考虑到,fom August 2021, new apps are required to publish with the Android App Bundle on Google Play ,对于任何使用 Android 应用程序的 Python 开发人员来说,这是一个至关重要的补充。
由于我目前正在使用 Buildozer via Docker ,我想知道哪些是使其生成 .aab 而不是(或沿用)传统 .apk 的步骤
为了清楚起见,这是我用来从容器内部运行 Buildozer(使用 Docker for Windows)来制作 .apk 文件的方法:

docker run --interactive --tty --rm --volume "<full_path_to_project_dir>":/home/user/hostcwd kivy/buildozer -v android debug 
我看到有一个临时的 workaround ,但它涉及使用我不使用并且希望避免使用的 Android Studio。此外,它指的是虚拟机用户,但我不确定这是否也适用于 Docker 用户。

最佳答案

社区终于完成了AAB support for Buildozer .虽然它仍然是一个待处理的拉取请求,但已经可以创建 AAB,而且我已经弄清楚了如何使用 Docker 来完成它。
我发现了两个非常有趣的要点,它们对我有很大帮助(这个是关于 creating an AAB with Buildozer on Ubuntuanother one about signing an AAB 在同一平台上的)。然而,我已经通过 Docker 在 Windows 上运行了所有东西,所以我认为分享我是如何做到的是个好主意。

  • 克隆feat/aab-support branch of the Buildozer repository在您的本地机器中:
    git clone --single-branch --branch feat/aab-support https://github.com/misl6/buildozer.git
  • 移动到您刚刚克隆的项目的根文件夹中,然后构建容器:
    cd buildozer
    docker build -t buildozer-aab .
  • 在使用 Buildozer 实际构建 AAB 之前,我们需要生成一个新的 buildozer.spec 文件,因为构建 AAB 需要包含新字段。为此,请移至应用项目的根文件夹,删除或重命名任何旧的 buildozer.spec 文件,然后运行以下命令:
    docker run --interactive --tty --rm --volume "<full_path_to_app_project_dir>":/home/user/hostcwd kivy/buildozer -v init
  • 更改新生成的 buildozer.spec 中的以下字段:
    android.archs = arm64-v8a, armeabi-v7a
    android.release_artifact = aab
    p4a.branch = develop
  • 现在我们需要创建一个 keystore 来签署我们的 AAB。为此,在 WSL shell 上运行以下命令(我在 Windows 10 上使用 WSL 2 和 Ubuntu):
    mkdir -p /path/to/keystores/
    keytool -genkey -v -keystore /path/to/keystores/<keystore>.keystore -alias <keystore-alias> -keyalg RSA -keysize 2048 -validity 10000
    keytool -importkeystore -srckeystore /path/to/keystores/<your-new-key>.keystore -destkeystore /path/to/keystores/<keystore>.keystore -deststoretype pkcs12
    第二行将生成一个有效期为 10000 天的 keystore (高于 minimum of 25 years required by Google)。您需要更换 <keystore>使用要用于 keystore 的文件名,并设置 <keystore-alias> (通常是您的应用程序的名称)。系统将要求您添加密码。尽量避免特殊字符。
    现在将您的 keystore 文件夹(/path/to/keystores/ 中的那个)移动到可以从 WSL 外部访问的文件夹(例如,您可以将其移动到桌面中)。在下文中,我假设您的 keystore 文件夹现在位于 C:\Users\test\Desktop\keystores
  • 我们现在终于准备好构建 AAB。首先,确保删除应用根文件夹中的所有 .buildozer 文件夹。然后运行以下命令:
     docker run --interactive --tty --rm \
    --volume "<app-project-folder>":/home/user/hostcwd \
    --volume "<app-project-folder>\.buildozer":/home/user/.buildozer \
    --volume "C:\Users\test\Desktop\keystores":/home/user/keystores \
    -e P4A_RELEASE_KEYSTORE=/home/user/keystores/<keystore>.keystore \
    -e P4A_RELEASE_KEYSTORE_PASSWD="<your-password>" \
    -e P4A_RELEASE_KEYALIAS_PASSWD="<your-password>" \
    -e P4A_RELEASE_KEYALIAS="<keystore-alias>" \
    buildozer-aab -v android release
  • 关于python - 如何通过 Docker 使用 Buildozer 构建 .aab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69149494/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com