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

升级Visual Studio后TestFlight安装的Xamarin Forms iOS应用字体丢失

问题根因

这是Visual Studio 2019 v16.11.6版本内置的Xamarin.iOS打包工具的已知缺陷:Release模式下执行归档构建时,会遗漏部分标记为BundleResource的自定义字体资源,不会自动将其纳入最终的ipa包资源目录。调试部署、模拟器运行时使用的是Debug构建逻辑,不会触发该缺陷,因此只有TestFlight/App Store分发的归档包会出现字体丢失问题。

修复步骤
  • 首先确认所有自定义字体的属性配置正确:右键点击iOS项目中的每个字体文件,选择「属性」,生成操作设置为BundleResource,复制到输出目录设置为如果较新则复制。
  • 手动校验Info.plist配置:打开iOS项目的Info.plist文件,找到「应用程序字体」(UIAppFonts)数组,确保所有自定义字体的完整文件名(包含后缀、大小写和实际文件完全一致,iOS文件系统大小写敏感)都已经添加到该数组中。
  • 增加强制打包配置:如果上述配置已经正确但问题依旧,在iOS项目的.csproj文件的<Project>根节点下添加以下构建逻辑,强制Release模式下将字体资源纳入打包范围:
<Target Name="ForceIncludeCustomFonts" BeforeTargets="CollectBundleResources" Condition="'$(Configuration)'=='Release'">
  <ItemGroup>
    <!-- 下面的路径替换为你项目中存放自定义字体的实际相对路径 -->
    <BundleResource Include="Fonts\*.ttf;Fonts\*.otf" />
  </ItemGroup>
</Target>
  • 版本升降级方案:你也可以直接将Visual Studio降级到v16.11.5版本,或者升级到v16.11.7及以上版本,微软已经在后续更新中修复了该打包缺陷。
验证方法

修改完成后先清理整个解决方案的缓存,再执行归档构建,导出Ad Hoc版本的安装包直接安装到测试设备验证,无需上传TestFlight即可确认修复效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:09