Skip to content

iOS:按方法的签名设置现在会覆盖顶层设置 ​

INFO

本指南以 Flet 1.0.0 为准,内容是最准确的。后续版本可能会新增 API 或增加额外的迁移路径。

破坏性变更与废弃索引列出了为每个版本编写的指南。

概述 ​

Flet 1.0.0 翻转了顶层 [tool.flet.ios] 签名键,与它们在 [tool.flet.ios.export_methods.<method>] 子表中的按方法对应项之间的优先级。这影响四个设置:provisioning_profile、 signing_certificate、export_options 和 team_id。

  • 之前:顶层键获胜——只有在没有设置顶层键时,才会使用按方法的值,导致只要两者都配置了,子表就完全失效。
  • 现在:对于正在构建的导出方法,按方法的值获胜;顶层键作为跨方法的共享回退。CLI 选项仍然优先于这两者。

这与 macOS 的 按 lane 的签名子表所用规则一致。

症状 ​

不会抛出任何错误——这个变更是静默的。当一个 ipa 构建中同时设置了同一键的两种形式(例如顶层 provisioning_profile 以及 export_methods 子表中的某个值)时,现在会用按方法的值来签名,而之前用的是顶层的值;这可能在安装或上传该构建时,随后表现为配置描述文件或证书不匹配。

只使用两种形式之一(仅顶层 或 仅按方法)的项目不受影响。

迁移指南 ​

如果某个按方法的值曾被顶层键遮蔽,而你依赖于顶层值获胜,那么请从 export_methods 子表中删掉你不想要的那一项——现在「按方法的一项」表示「构建该方法时使用这个」:

toml
[tool.flet.ios]
# 所有导出方法的共享回退
signing_certificate = "Apple Development"

[tool.flet.ios.export_methods.app-store-connect]
# 仅覆盖 app-store-connect 构建的回退
signing_certificate = "Apple Distribution"

无需改动的情况 ​

  • 只在一处设置签名键的项目——顶层 或 按方法。
  • 完全由 CLI 选项驱动的构建,它们保持最高优先级。

时间线 ​

  • 变更于:1.0.0

参考 ​


关注我,学习大模型、大数据、Python等热门技术。