主题
iOS:按方法的签名设置现在会覆盖顶层设置
概述
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
参考
- 文档:iOS 导出方法
- 发布说明:Flet 1.0.0