Xcode15 Beta3中Xcode14旧项目SwiftUI Label文本未出现在字符串目录的原因
SwiftUI Label文本未出现在旧项目Localizable.xcstrings中的原因
问题场景
- 使用Xcode15 Beta3为Xcode14创建的现有项目添加字符串目录并构建后,生成的
Localizable.xcstrings文件未收录SwiftUI Label视图的文本(示例代码:
Label("Hello world", systemImage: "home")
),但Text视图、导航栏标题等其他视图的文本均正常被提取。
- 相同操作下,Xcode15 Beta3新建的项目中,Label文本能正常出现在
Localizable.xcstrings文件内。
核心原因
旧项目与新项目的Swift编译器本地化字符串提取配置存在差异:
- Xcode15新建项目默认启用了Xcode15新增的全量SwiftUI字符串提取规则,包含对Label文本参数的识别逻辑。
- Xcode14创建的旧项目,默认未开启Xcode15的新提取规则,具体表现为:
- 项目Build Settings中,
Swift Compiler - Custom Flags下的OTHER_SWIFT_FLAGS缺少-Xfrontend -enable-experimental-string-localization参数——这个参数是Xcode15用来识别Label等新增视图文本的关键开关。 - 旧项目的本地化配置仍沿用Xcode14的旧模式,未适配Xcode15字符串目录的新提取流程。
- 项目Build Settings中,
解决办法
- 打开旧项目的Build Settings,搜索
OTHER_SWIFT_FLAGS,添加参数:-Xfrontend -enable-experimental-string-localization - 确认项目Localization设置中已正确添加字符串目录(String Catalog),并勾选对应目标语言
- 执行清理缓存(Cmd+Shift+K)后重新构建项目
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

