You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用kivy-ios搭配KivyMD开发时所有图标无法显示问题求助

修复方案

这个问题是KivyMD依赖的Material Icons字体没有被kivy-ios的toolchain正确打包进应用资源包导致的,可按以下步骤修复:

  • 第一步:从本地Python环境的KivyMD安装目录下fonts文件夹中,找到materialdesignicons-webfont.ttf字体文件,复制到你的项目根目录。
  • 第二步:在应用入口代码最前添加字体注册逻辑,适配iOS端的资源路径:
from kivy.core.text import LabelBase
import os
from kivymd import fonts_path

# 优先读取打包到应用内的字体文件
app_root = os.path.dirname(__file__)
custom_font = os.path.join(app_root, 'materialdesignicons-webfont.ttf')
if os.path.exists(custom_font):
    font_path = custom_font
else:
    # 本地开发环境 fallback
    font_path = os.path.join(fonts_path, 'materialdesignicons-webfont.ttf')

LabelBase.register(name='MaterialIcons', fn_regular=font_path)
  • 第三步:执行toolchain打包命令时,手动指定把字体文件打包进应用根目录:
    toolchain create --add-data "materialdesignicons-webfont.ttf:." 你的应用名 你的项目路径
  • 第四步:确认你的代码中没有修改MDApp.icon_font_name的默认配置,保持默认值即可。

你当前使用的kivy、sdl2_ttf版本均没有兼容性问题,不需要调整依赖版本,按以上步骤操作后重新打包即可正常显示图标。

内容的提问来源于stack exchange,提问作者Oleksandr K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 10:36:08