iOS 16真机中PKAddPassButton显示未本地化标题问题求助
核心原因及对应解决方案:
应用本地化资源缺失
iOS16调整了PKAddPassButton的本地化字符串加载逻辑,若应用未包含PassKit对应语言的本地化资源,真机就会直接显示原始键值ADD_PASS_BUTTON_TITLE(iOS15及模拟器会自动 fallback 到默认英文)。
解决:- 检查项目
Project -> Info -> Localizations,确保已添加目标语言(如English); - 在对应语言的
Localizable.strings中手动添加键值对:"ADD_PASS_BUTTON_TITLE" = "Add to Apple Wallet"; - 确认
.lproj文件夹已包含在项目资源中。
- 检查项目
构建配置未包含本地化资源
如果Build Phases -> Copy Bundle Resources里没有添加对应的本地化文件,iOS16真机无法读取到本地化文本。
解决:打开Xcode的Build Phases,将目标语言的.lproj文件夹添加到Copy Bundle Resources列表中。设备语言与应用支持语言不匹配
若iOS16设备的语言是应用未支持的类型,系统找不到对应本地化字符串时会显示原始键值(iOS15会默认用英文替代)。
解决:要么给应用添加该语言的本地化支持,要么暂时切换设备语言到应用已支持的语言测试。按钮初始化时机过早
你当前的代码是在全局变量中直接初始化按钮,iOS16下应用启动早期PassKit的本地化资源可能还未加载完成,导致显示键值。
解决:延迟按钮初始化时机,比如在viewDidLoad中创建:var applePayButton: PKAddPassButton! override func viewDidLoad() { super.viewDidLoad() applePayButton = PKAddPassButton(addPassButtonStyle: .blackOutline) applePayButton.translatesAutoresizingMaskIntoConstraints = false view.addSubview(applePayButton) // 配置约束等逻辑 }
内容的提问来源于stack exchange,提问作者Saina Hamze Zade
相关产品推荐
相关产品推荐

