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

String Catalog在SDK预览中不生效的问题求助

String Catalog本地化在SDK预览中不生效但接入应用正常的排查方案

1. 确认SDK模块的本地化资源配置

  • 检查SDK target的本地化设置:进入SDK的target配置页,在「Info」标签下的「Localizations」列表,确认已添加所有需要的语言,且String Catalog文件已关联到这些语言
  • 验证String Catalog的Target Membership:选中Catalog文件,右侧检查器里确保勾选了SDK的target,而非仅主应用或测试target

2. 修复预览的本地化上下文

SwiftUI预览默认可能会使用主应用的bundle而非SDK自身的bundle,导致无法读取SDK的本地化资源,需手动指定:

struct YourSDKComponent_Previews: PreviewProvider {
    static var previews: some View {
        YourSDKComponent()
            .environment(\.locale, Locale(identifier: "en"))
            .environment(\.bundle, Bundle.module) // 绑定SDK自身的bundle
    }
}

如果是Objective-C SDK,预览时需确保代码中加载的是SDK的bundle实例,而非[NSBundle mainBundle]

3. 验证字符串绑定的正确性

  • 检查代码中Text元素的本地化调用:确保使用Text("catalog_key")或String(localized: "catalog_key", bundle: .module),而非硬编码字符串或错误绑定到主应用bundle
  • 查看编译后的SDK bundle:右键点击SDK产物,选择「Show Package Contents」,确认Contents/Resources下存在对应语言的.lproj目录,且目录内包含String Catalog文件

4. 清理缓存与重建

  • 执行Cmd+Shift+K清理构建文件夹,再删除Xcode的DerivedData目录(默认路径:~/Library/Developer/Xcode/DerivedData)
  • 重启Xcode后重新构建预览,避免缓存导致的旧资源加载问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:48:18