3

我正在尝试使用 Stripe 将 Apple Pay 添加到 Swift 应用程序中。我正在关注Stripe 的指南。我创建了一个演示 repo 来演示下面发现的错误。

我添加了 Stripe 库,链接了必要的 Apple 库,添加了一个 Objective-C 桥接头,添加了一个 Stripe Publishable Key,启用了 Stripe Enable ApplePay 宏,并启用了 ApplePay 授权。

当我尝试创建实际付款请求时出现问题:

 var request: PKPaymentRequest = Stripe.paymentRequestWithMerchantIdentifier("merchant.fm.kenneth.donate")

我的存储库详细解释了这一点。

当我构建应用程序时,它会导致以下错误:

2014-11-09 13:59:33.576 stripeTest2[22128:904179] 
+[Stripe paymentRequestWithMerchantIdentifier:]: 
unrecognized selector sent to class 0x10910a210

2014-11-09 13:59:33.579 stripeTest2[22128:904179] *** 
Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '+[Stripe paymentRequestWithMerchantIdentifier:]: 
unrecognized selector sent to class 0x10910a210'

我认为Stripe库中Objective-C代码的桥接一定存在问题。任何帮助将不胜感激。

4

2 回答 2

3

这是一个有趣的案例。似乎__IPHONE_OS_VERSION_MAX_ALLOWED没有为纯 Swift 应用程序定义,所以 ApplePay 代码没有被编译。

由于这个检查不是绝对必要的(如果你#define STRIPE_ENABLE_APPLEPAY的基础 SDK 早于 iOS8,那基本上是程序员的错误),我已经从我们的 SDK 中取出了这些检查(我是 Stripe 的工程师)。如果你去获取最新版本(2.2.2),事情应该对你有用(我克隆了你的 repo 并测试了这个变化,看起来还不错)。

谢谢让我们注意到这个!

杰克

于 2014-11-16T00:07:17.263 回答
0

正如我发现的那样,如果您将“Stripe+ApplePay.h”添加到您的桥接头中,它也会有所帮助。

于 2014-12-12T23:27:42.467 回答