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

Wallet Extension问题:Apple Wallet中「从iPhone上的应用添加」选项未显示

问题排查:Wallet「从iPhone上的应用添加」选项不显示

针对你遇到的Wallet Extension入口不显示的问题,以下是关键排查方向:

1. 开发者后台权限配置验证

  • 确认你的App ID在Apple开发者后台已启用「Payment Pass Provisioning」功能,不能仅在Xcode的Entitlements中添加权限。
  • 重新下载主应用及两个扩展对应的Provisioning Profile,确保配置文件包含该权限,且签名时使用正确的配置文件。

2. NonUI扩展核心方法完整性

你仅实现了status(completion:),但Wallet要求同时正确实现passEntries(completion:)方法——即使status标记卡片可用,若该方法未返回有效条目,入口仍不会显示。示例实现:

override func passEntries(completion: @escaping ([PKIssuerProvisioningExtensionPassEntry]?) -> Void) {
    let cardEntry = PKIssuerProvisioningExtensionPassEntry()
    cardEntry.identifier = "unique-card-identifier"
    cardEntry.displayName = "你的信用卡名称"
    cardEntry.artwork = UIImage(named: "card-icon") // 可选,设置卡片图标
    completion([cardEntry])
}

注意返回的数组至少包含一个有效PKIssuerProvisioningExtensionPassEntry实例,且identifier需唯一。

3. 签名与Team一致性

  • 主应用、UI扩展、NonUI扩展必须使用同一个Team ID签名,禁止混用不同Team或不同类型(开发/生产)的证书。
  • 检查所有目标的「Signing & Capabilities」配置,确保自动签名或手动签名的配置完全一致。

4. 扩展Entitlements配置验证

确认NonUI扩展的Entitlements文件中存在以下配置:

<key>com.apple.developer.payment-pass-provisioning</key>
<true/>

UI扩展也需添加该权限,确保与主应用权限配置完全一致。

5. 系统缓存与设备兼容性

  • 强制退出Wallet应用,重启测试设备,清除系统对扩展的缓存。
  • 确保测试设备运行的iOS版本≥12.0,Wallet Extension功能在低版本系统上不支持。

6. UI扩展配置细节检查

  • 确认UI扩展的Storyboard初始视图控制器继承自PKIssuerProvisioningExtensionViewController,且类关联正确。
  • 检查UI扩展的NSExtensionMainStoryboard值与实际文件名完全匹配(区分大小写)。

内容的提问来源于stack exchange,提问作者Gabriel Leal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:22:45