跳转到主要内容

用于编译运行Kivy应用程序所需库的iOS工具链。

项目描述

Kivy for iOS

Backers on Open Collective Sponsors on Open Collective Contributor Covenant

PyPI - Version PyPI - Python Version

kivy-ios

Kivy for iOS (kivy-ios) 是一个工具链,用于编译运行 Kivy 应用程序所需的库,并为 iOS 创建 Kivy 应用程序,并管理 Xcode 项目的创建。

该工具链支持

  • iPhone / iOS (arm64)
  • iPhone 模拟器 (x86_64, arm64)

我们不提供此工具链的任何二进制发行版。您在创建 Xcode 项目之前至少需要编译它一次。

因为 Xcode 只能在 macOS 上运行,所以 Kivy for iOS 只在平台上有用。

Kivy for iOS 由 Kivy 团队 管理,并可以与 Buildozer 一起使用。

安装和需求

在我们开始之前,我们强烈建议使用 Python 虚拟环境来安装 Python 包。

  python3 -m venv venv
  . venv/bin/activate

使用 pip 如同任何 Python 包一样安装从 PyPI 下载的 Kivy for iOS

  pip3 install kivy-ios

此外,您还需要一些系统依赖项和配置。

  • 安装 Xcode 13 或更高版本,并安装 iOS SDK 和命令行工具

    xcode-select --install
    
  • 使用 brew,您可以安装以下依赖项

    brew install autoconf automake libtool pkg-config
    brew link libtool
    

使用工具链

任何 Python 扩展或 C/C++ 库都必须编译:您需要我们所说的“配方”来编译它。例如,Python、libffi、SDL2、SDL_image、freetype... 所有依赖项、编译和打包说明都包含在一个“配方”中。

您可以使用以下命令列出可用的配方及其版本

$ toolchain recipes
audiostream  master
click        7.1.2
cymunk       master
ffmpeg       n4.3.1
ffpyplayer   v3.2
flask        1.1.2
freetype     2.5.5
hostlibffi   3.2.1
hostopenssl  1.1.1g
hostpython3  3.7.1
ios          master
itsdangerous 1.1.0
jinja2       2.11.2
kivy         1.10.1
libffi       3.2.1
libjpeg      v9a
libpng       1.6.26
markupsafe   1.1.1
moodstocks   4.1.5
numpy        1.16.4
openssl      1.1.1g
photolibrary master
pillow       6.1.0
plyer        master
pycrypto     2.6.1
pykka        1.2.1
pyobjus      master
python3      3.7.1
pyyaml       3.11
sdl2         2.0.8
sdl2_image   2.0.0
sdl2_mixer   2.0.0
sdl2_ttf     2.0.12
werkzeug     1.0.1

注意:这些配方尚未移植到新工具链

  • lxml

然后,使用以下命令开始编译

$ toolchain build python3 kivy

您可以通过添加参数同时构建配方

$ toolchain build python3 openssl kivy

可以使用 clean 命令删除配方构建,例如

$ toolchain clean openssl

您可以使用 pip 安装不需要编译的包:

$ toolchain pip install plyer

Kivy 配方依赖于几个其他配方,如 sdl* 和 python 配方。这些配方可能反过来又依赖于其他配方,例如,sdl2_ttf 依赖于 freetype 等。您可以将此视为:kivy 配方将编译运行 Kivy 最小工作版本所需的所有内容。

不要只是拿咖啡;吃晚餐。第一次编译所有库需要两次(记住:两个平台 - iOS、iPhoneSimulator)将花费时间。

要获取可用命令的完整列表,请键入

$ toolchain

创建 Xcode 项目

toolchain.py 可以为您创建初始 Xcode 项目:

$ toolchain create <title> <app_directory>
$ toolchain create Touchtracer ~/code/kivy/examples/demo/touchtracer

您的应用程序目录必须包含 main.py。将创建一个名为 <title>-ios 的目录,其中包含一个 Xcode 项目。您可以使用以下方式打开 Xcode 项目:

$ open touchtracer-ios/touchtracer.xcodeproj

然后点击 播放,享受。

你知道吗?

每次您按下 播放 时,您的应用程序目录都将同步到 <title>-ios/YourApp 目录。不要直接在 -ios 目录中更改。

配置您的应用程序

您可以通过多种方式配置和自定义应用程序

  • 在 XCode 中设置图标和启动图像。请注意,XCode 要求您按设备或 iOS 版本指定这些资产。

  • 当您第一次构建 XCode 项目时,在您的 XCode 项目文件夹中创建一个 'main.m' 文件。此文件配置您的环境变量并控制应用程序启动。您可以编辑此文件以自定义启动环境。

  • Kivy使用SDL,当应用启动SDL主程序时,启动画面会消失。为防止这种情况,您需要准备两个文件,分别命名为Default.pngDefault-Landscape.png,并将它们放入Xcode的Resources文件夹中(而不是您的应用程序文件夹中)。

你知道吗?

如果您想限制应用程序的方向,您应该通过'main.m'中的'export_orientation'函数来完成。Xcode的方向设置应设置为支持所有方向。

使用食谱

食谱用于安装和编译您可能需要使用的任何库。这些食谱遵循Python-for-Android姐妹项目的格式。请参阅食谱文档以获取更多详细信息。

减小应用程序大小

如果您想减小分发应用程序的大小,您可以采取以下几种方法来实现这一目标

  • 最小化build/pythonX/lib/pythonXX.zip:该文件包含所有Python模块。您可以编辑zip文件并删除您不会使用的所有文件(减少编码,删除xml,email...)

  • 转到设置面板 > build,搜索“strip”选项,并确保它们都设置为NO。剥离不适用于Python动态模块,并将删除必要的符号。

  • 默认情况下,iOS包为所有处理器架构编译二进制文件,即根据Apple的指导原则,x86_64和arm64。您可以通过删除x86_64架构来显着减小ipa的大小,因为它们仅用于模拟器。

    步骤是首先编译/构建所有主机食谱

    toolchain build hostpython3
    

    然后使用--arch=arm64参数构建所有其他食谱,如下所示

    toolchain build python3 kivy --arch=arm64
    

    请注意,这些软件包不能在iOS模拟器中运行,因此仅用于部署。

用法

toolchain <command> [<args>]

Available commands:
    build         Build a recipe (compile a library for the required target
                    architecture)
    clean         Clean the build of the specified recipe
    distclean     Clean the build and the result
    recipes       List all the available recipes
    status        List all the recipes and their build status

Xcode:
    create        Create a new xcode project
    update        Update an existing xcode project (frameworks, libraries..)
    launchimage   Create Launch images for your xcode project
    icon          Create Icons for your xcode project
    pip           Install a pip dependency into the distribution
    pip3          Install a pip dependency into the python 3 distribution

开发

或者,也可以克隆存储库并使用上面各节中描述的所有命令。克隆并安装到您的本地虚拟环境中

git clone https://github.com/kivy/kivy-ios.git
cd kivy-ios/
python3 -m venv venv
. venv/bin/activate
pip install -e .

然后使用toolchain.py脚本

python toolchain.py --help

常见问题解答

有关故障排除建议和其他常见问题,请参阅最新的Kivy for iOS FAQ

许可证

Kivy for iOS是MIT许可,由一个优秀的社区积极开发,并由Kivy组织管理的许多项目支持。

支持

您在使用kivy-ios或其相关项目时遇到困难吗?是否有您不理解的错误?您是否正在尝试找出如何使用它?我们有志愿者可以帮助您!

获取支持的最好渠道列在最新的联系我们文档中。

贡献

kivy-ios是Kivy生态系统的一部分 - 由成千上万的开发者免费使用的庞大产品组,但它完全由志愿者的贡献构建。我们欢迎(并依赖于)希望通过向项目做出贡献来回报社区的用户。

贡献可以以多种形式出现。请参阅最新的贡献指南,了解您如何帮助我们。

行为准则

为了培养一个开放和欢迎的社区,我们作为贡献者和维护者需要确保在我们的项目和我们的姐妹项目中,参与是一个没有骚扰和积极的体验。所有互动都以尊重、开放心态和感激之情的方式执行是至关重要的。

请参阅最新的Kivy行为准则

贡献者

本项目得以存在,多亏了所有贡献力量的人。所有贡献者。 [成为贡献者].

赞助者

感谢所有我们的赞助者! 🙏 [成为赞助者]

赞助商

特别感谢所有过去和现在的赞助商。通过[成为赞助商]来支持此项目。

以下是我们的主要赞助商。请点击查看他们的网站,并支持他们,正如他们支持我们一样。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

kivy-ios-2024.3.17.tar.gz (1.0 MB 查看散列)

上传时间 源代码

构建分发

kivy_ios-2024.3.17-py3-none-any.whl (1.1 MB 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面