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

集成Expo Modules时无法编译PKAddPaymentPassViewControllerDelegate

解决Expo Modules 51集成后PKAddPaymentPassViewControllerDelegate编译错误

针对现有React Native项目集成Expo Modules 51后,Swift类实现PKAddPaymentPassViewControllerDelegate出现的编译错误,可按以下步骤解决:

1. 显式导入PassKit框架

在你的AddPaymentPassHandler.swift文件顶部添加:

import PassKit

Expo Modules集成后,项目默认依赖导入逻辑可能被修改,导致系统框架未被自动引入,显式导入能确保PKAddPaymentPassViewControllerDelegate协议和相关类被正确识别。

2. 检查并修复桥接头文件配置

  • 打开项目的Objective-C桥接头文件(通常命名为[项目名]-Bridging-Header.h),添加PassKit的导入:
    #import <PassKit/PassKit.h>
    
  • 确认Xcode项目设置中,Build Settings -> Swift Compiler - General -> Objective-C Bridging Header已正确配置桥接头文件的相对路径(比如$(SRCROOT)/[项目名]/[桥接头文件名].h)。

3. 调整AppDelegate.mm的导入顺序

将#import "ExpoModulesCore-Swift.h"移到系统框架和项目本地头文件导入之后,示例:

#import <PassKit/PassKit.h>
#import "AppDelegate.h"
#import "ExpoModulesCore-Swift.h"

导入顺序错误可能导致Expo的头文件干扰系统协议的解析,优先导入系统框架可避免这类冲突。

4. 清理编译缓存并重建项目

  • 按Cmd + Shift + K清理项目
  • 手动删除DerivedData目录(路径可通过Xcode -> Preferences -> Locations查看)
  • 重启Xcode后重新执行构建
    Expo集成过程中产生的旧编译缓存可能导致类型识别异常,清理后重建能解决这类缓存问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:22:17