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

iOS 16真机中PKAddPassButton显示未本地化标题问题求助

PKAddPassButton在iOS16真机显示未本地化标题的原因及解决办法

核心原因及对应解决方案:

  • 应用本地化资源缺失
    iOS16调整了PKAddPassButton的本地化字符串加载逻辑,若应用未包含PassKit对应语言的本地化资源,真机就会直接显示原始键值ADD_PASS_BUTTON_TITLE(iOS15及模拟器会自动 fallback 到默认英文)。
    解决:

    1. 检查项目Project -> Info -> Localizations,确保已添加目标语言(如English);
    2. 在对应语言的Localizable.strings中手动添加键值对:
      "ADD_PASS_BUTTON_TITLE" = "Add to Apple Wallet";
      
    3. 确认.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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:51:00