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

Square Apple Pay集成崩溃:NSInvalidArgumentException异常求助

iOS 16 iPhoneX 集成Square Apple Pay 崩溃问题

崩溃异常信息

Terminating app due to uncaught exception 'NSInvalidArgumentException'.
787406+0530 Runner[6770:338808] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithFormat:locale:arguments:]: nil argument'
*** First throw call stack:
(0x1a718edb4 0x1a56199a0 0x1a653e4bc 0x1a653e380 0x104c1cda0 0x104c13f38 0x104c1e860 0x108ca0b14 0x10878ba8c 0x10511408c 0x1051158c4 0x105124428 0x105124080 0x1a7218ac8 0x1a71fc754 0x1a7200dfc 0x1e10b6984 0x1ae3e3e7c 0x1ae3e3af4 0x102da4d34 0x1c88bede0)

问题复现步骤

  • 在Flutter项目的pubspec.yaml中配置SDK:square_in_app_payments: ^1.7.5
  • 完成Apple Pay初始化
  • 调用await InAppPayments.requestApplePayNonce(...)触发崩溃

复现代码

InAppPayments.requestApplePayNonce(
  price: "1.0",
  currencyCode: "USD",
  countryCode: 'US',
  summaryLabel: 'Cookie',
  paymentType: ApplePayPaymentType.finalPayment,
  onApplePayComplete: _onApplePayEntryComplete,
  onApplePayNonceRequestSuccess: _onApplePayNonceRequestSuccess,
  onApplePayNonceRequestFailure: _onApplePayNonceRequestFailure,
);

解决办法

1. 升级SDK版本

该崩溃是Square Flutter插件1.7.5版本存在的iOS 16兼容性bug,官方在1.7.6版本中已修复此问题。修改pubspec.yaml中的依赖版本:

square_in_app_payments: ^1.7.6

执行flutter pub get更新依赖后,重新编译运行项目即可解决。

2. 临时修复(无法立即升级时)

如果暂时无法升级SDK,可尝试以下操作:

  • 强制校验所有传入requestApplePayNonce的参数,确保无nil值传入原生层,即使代码中已赋值,也可添加非空判断兜底。
  • 检查iOS项目配置:确认Apple Pay的Merchant ID已正确配置,且项目的Signing & Capabilities中已开启Apple Pay权限并关联对应Merchant ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:40:29