Flutter iOS端无法配置Razorpay支付网关,编译报错求助
Flutter iOS端Razorpay插件构建失败解决方案
核心报错分析
从日志看,导致构建失败的关键错误是:
Swift Compiler Error (Xcode): Module 'Razorpay' was created for incompatible target arm64-apple-ios10.0: /Users/devytpl/Dev/Applications/ios/Pods/razorpay-pod/Pod/Razorpay.framework/Modules/Razorpay.swiftmodule/arm64.swiftmodule
这说明Razorpay的iOS SDK架构与模拟器不兼容,同时还存在部署目标版本过低、Bitcode不支持等次要问题。
分步解决方案
1. 修复架构不兼容问题
在iOS项目的Podfile中添加架构过滤配置,确保模拟器使用正确的架构编译:
- 打开项目根目录下的
ios/Podfile,在文件末尾添加以下代码:
post_install do |installer| installer.pods_project.targets.each do |target| # 为razorpay-pod过滤模拟器的arm64架构 if target.name == 'razorpay-pod' target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end # 统一将所有Pod的部署目标设置为9.0,解决版本警告 target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0' end end end
- 执行以下命令清理并重新构建依赖:
cd ios pod deintegrate pod install cd .. flutter clean flutter run
2. 禁用Bitcode消除警告
Flutter官方引擎不支持Bitcode,直接在Xcode中关闭该选项:
- 打开
ios/Runner.xcworkspace - 选中
Runner目标,进入Build Settings标签页 - 搜索
ENABLE_BITCODE,将其值设置为NO
3. 升级Razorpay Flutter插件(推荐)
你当前使用的razorpay_flutter:1.3.2版本较旧,新版本已修复大量iOS兼容性问题:
- 在
pubspec.yaml中更新依赖版本:
razorpay_flutter: ^2.1.4 # 可前往pub.dev获取最新稳定版
- 执行
flutter pub get后,重新执行上述的pod清理安装步骤。
4. M系列Mac额外适配
如果使用M1/M2芯片的Mac,需在Xcode中调整架构设置:
- 打开
ios/Runner.xcworkspace,选中Runner目标 - 进入
Build Settings,搜索Architectures,设置为Standard Architectures (arm64, x86_64) - 搜索
VALID_ARCHS,添加arm64和x86_64两个架构值
内容的提问来源于stack exchange,提问作者Mrutyunjaya Giri
相关产品推荐
相关产品推荐

