Xcode 11移除本地化:已删语言仍显示在iOS13设置中如何解决?
我之前也碰到过这种头疼的情况!光在Xcode的Info标签页删掉Localizations,确实没法彻底清除iOS 13系统设置里的残留语言选项,还得从这几个地方下手:
检查并修正Info.plist的配置
有时候可视化界面删除语言后,Info.plist里的CFBundleLocalizations数组可能还留着尾巴。右键项目中的Info.plist选择「Open As -> Source Code」,找到这个数组,把所有不属于你支持语言的条目彻底删掉,比如<string>ja</string>这类多余的语言代码。清理项目配置文件的深层设置
找到项目根目录下的YourProjectName.xcodeproj文件,右键选择「Show Package Contents」,打开里面的project.pbxproj。搜索knownRegions和developmentRegion,把这两个字段里的非支持语言条目全部移除,确保只保留你需要的语言(比如zh-Hans、en)。删除残留的本地化资源文件
仔细检查项目目录下所有.lproj后缀的文件夹,比如ko.lproj、fr.lproj这类你要移除的语言文件夹,要彻底删除(包括Assets目录里的本地化资源、Storyboard/XIB的本地化分支文件)。如果项目里有通过代码动态加载本地化内容的逻辑,也要同步清理相关代码。彻底清除编译缓存
别只用Xcode的「Clean」(Command+K),一定要用「Clean Build Folder」(Shift+Command+K),最好直接删掉Xcode的Derived Data文件夹——路径是~/Library/Developer/Xcode/DerivedData,找到对应项目的文件夹删除,避免旧缓存导致配置不生效。处理系统设置的缓存残留
iOS 13的系统设置有时候会保留旧的应用配置缓存,你可以先卸载当前应用,重启iPhone,然后再重新编译安装,这样系统设置里的语言选项就会同步更新了。
内容的提问来源于stack exchange,提问作者SimpleApp

