无法从Swift String Catalog中移除语言的问题求助
iOS应用移除多余语言后仍在设置中显示的解决办法
问题
我给iOS应用做了带String Catalog的Localizable文件,测试时加了好几种语言,这些语言都出现在应用设置里。现在想删掉大部分语言,但它们还是在设置里看得见。
试过的操作都没用:
- 删掉了所有和localizable、localizations相关的内容
- Project Info里只留了英语和法语
- 删除应用、重启设备
- 先装App Store上无本地化的版本,再装调试版
相关截图:
解决步骤
手动检查Info.plist
直接打开项目的Info.plist文件,找CFBundleLocalizations这个字段,确保里面只有en和fr两个语言代码,把其他多余的都删掉。有时候Project Info的修改不会同步到这个字段,得手动改。清理String Catalog里的残留语言
打开.xcstrings文件,看左侧的语言列表,删掉不需要的语言。别只删文件,要确保xcstrings本身已经移除了多余语言的配置。清Xcode缓存
- 点
Product > Clean Build Folder(快捷键Cmd+Shift+K) - 打开Xcode偏好设置,进
Locations,点Derived Data旁边的箭头,删掉对应项目的Derived Data文件夹 - 重启Xcode
- 点
检查打包配置
如果是用TestFlight或App Store发的版本,打包时要确认本地化配置只留需要的语言。在Build Settings里搜Localization,看看Localization native development region和Localizations的设置对不对,有没有多余语言。重置设备语言缓存
光删应用重启可能不够,试试:- 进iOS设置的
通用 > 传输或还原iPhone > 还原 > 还原所有设置(不会删数据,只是重置系统设置) - 或者先把系统语言换成别的,再切回来,重新装应用
- 进iOS设置的
查第三方依赖的本地化
有些第三方库自带本地化文件,会导致应用设置里显示多余语言。用Xcode的Find in Project搜.lproj文件夹,看看是不是第三方库残留的语言文件夹,有的话删掉就行。
内容的提问来源于stack exchange,提问作者AsMartynas
相关产品推荐
相关产品推荐




