Flutter iOS端Info.plist权限描述本地化(Xcode15)失败求助
Flutter iOS端Info.plist权限描述本地化(Xcode 15适配)
分步操作指南
- 打开Flutter项目的iOS工程:启动Xcode 15,打开项目根目录下的
ios/Runner.xcworkspace - 创建本地化字符串文件:
- 在左侧导航栏选中
Runner目录,右键选择「New File」 - 搜索「Strings File」,命名为
InfoPlist.strings,保存到Runner目录下
- 在左侧导航栏选中
- 启用多语言支持:
- 选中刚创建的
InfoPlist.strings文件,查看右侧「File Inspector」面板 - 找到「Localization」区域,点击「Localize...」,选择基准语言(如English)后确认
- 回到「Localization」列表,勾选需要支持的目标语言(如简体中文、韩语等),Xcode会自动生成对应语言的
.lproj子目录及本地化文件
- 选中刚创建的
- 填充权限本地化文本:
打开对应语言的InfoPlist.strings文件,添加与Info.plist权限键完全匹配的键值对,示例(简体中文):NSAppleMusicUsageDescription = "需要访问您的音乐库以播放本地音频内容"; NSBluetoothAlwaysUsageDescription = "需要持续访问蓝牙以连接智能设备并同步数据"; - 确认Info.plist配置:
打开Info.plist文件,确保需要本地化的权限键(如上述两个)已存在,值可填写基准语言的默认描述(系统会优先读取对应语言的本地化字符串)
问题排查方案
- 校验文件路径与命名:确认各语言的
InfoPlist.strings位于正确的.lproj目录下(如简体中文对应zh-Hans.lproj/InfoPlist.strings),文件名大小写完全一致 - 核对权限键名:
InfoPlist.strings中的键必须与Info.plist里的权限键完全匹配,包括大小写(如NSBluetoothAlwaysUsageDescription不可简写或拼错) - 检查Target本地化设置:选中
RunnerTarget,切换到「Info」标签页,确认「Localizations」列表已包含目标语言,且InfoPlist.strings已被添加到对应语言的资源列表中 - 查看调试日志:在Xcode的「Console」面板中,搜索
Localization或InfoPlist关键词,系统会输出本地化资源加载的警告信息(如找不到对应键的翻译) - 清理缓存:执行
flutter clean,删除Xcode的Derived Data(路径:Xcode → Settings → Locations → Derived Data,点击箭头打开目录后删除),重新构建项目 - 测试真实设备:部分模拟器存在本地化缓存问题,建议使用真实iOS设备测试权限提示弹窗
内容的提问来源于stack exchange,提问作者Bill C
相关产品推荐
相关产品推荐

