【问题标题】:Stripe iOS SDK - Incompatible block pointer types sendingStripe iOS SDK - 发送不兼容的块指针类型
【发布时间】:2020-07-05 13:57:20
【问题描述】:

Stripe SDK 导致构建失败。具体错误是:

发送'__strong STPAPIResponseBlock _Nonnull'的不兼容块指针类型(又名'void (^__strong)(ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

到'void (^ _Nonnull)(STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'类型的参数

它失败的代码是 STPAPIClient.m 中的以下代码...

- (NSURLSessionDataTask *)retrieveSourceWithId:(NSString *)identifier clientSecret:(NSString *)secret responseCompletion:(STPAPIResponseBlock)completion {
    NSString *endpoint = [NSString stringWithFormat:@"%@/%@", APIEndpointSources, identifier];
    NSDictionary *parameters = @{@"client_secret": secret};
    return [STPAPIRequest<STPSource *> getWithAPIClient:self
                                               endpoint:endpoint
                                             parameters:parameters
                                           deserializer:[STPSource new]
                                             completion:completion];
}

一切正常 - 然后我相信 Xcode 更新了。现在我遇到了这个问题。我尝试从头开始构建一个新应用程序,除了 Stripe SDK(通过 CocoaPods 安装)之外什么都没有。

在我回滚到早期版本的 Xcode 之前 - 任何帮助将不胜感激。

【问题讨论】:

  • 我应该提到 - 我正在运行 XCode 11.4 并针对 iOS 13.4
  • 仅供参考,您可以编辑问题以包含更多信息,而不是添加 cmets。

标签: ios stripe-payments


【解决方案1】:

XCode 11.4 破坏了 stripe pod v19.0 并在 v19.0.1 中得到修复
要升级 Stripe pod,请运行 pod update Stripe

【讨论】:

  • 我尝试了你的步骤,但我没有安装 v19.0.1。
  • @EmreDeğirmenci 新的 pod 版本是 19.0.1,最新的 Stripe 版本是 14.0.1 atm
【解决方案2】:

修复更新:“我们已经向 Cocoapods 发布了 v14.0.1、v15.0.2、v17.0.3 和 v19.0.1,修复了这个问题。”: https://github.com/stripe/stripe-ios/issues/1525#issuecomment-604037716

旧帖信息:

Stripe 在此更改中修复了此问题:https://github.com/stripe/stripe-ios/pull/1526

如果您被旧版本的 Stripe 卡住了,您可以尝试将这两项更改应用到您的本地版本。 (更改https://github.com/stripe/stripe-ios/pull/1526/files)。

【讨论】:

  • v14.0.1、v15.0.2、v17.0.3 和 v19.0.1 有什么不同?找不到合适的。
  • 客户端已修复 v11.3.0 ... 决定修补比质疑原因更容易
【解决方案3】:

我这样做了:

在 Podfile.lock 我已将 - Stripe (19.0.0) 更改为 - Stripe (19.0.1),然后在终端中在 ios 目录下运行 "pod update Stripe"。我正在使用颤振,对我来说它有效。

【讨论】:

    【解决方案4】:

    也遇到了这个问题,但我使用的是 v14 版本的条带吊舱。我能找到的唯一选择是恢复到 xcode 11.3.1。

    【讨论】:

    • 您可以将 Stripe pod 版本升级到 14.0.1。他们在该版本中发布了修复程序
    • 刚刚遇到这个问题,当我更新时,我开始在 TPSCardFieldManager.h 的导入中找不到“React/RCTViewManager.h”文件的错误,我尝试的任何方法似乎都无法修复对此,任何帮助将不胜感激。
    【解决方案5】:

    您可以将您的 Stripe SDK 设置为版本 19.0.1 来解决此问题。

    pod 'Stripe', '~> 19.0.1'

    或者通过 pod update 命令将您的条带 pod 更新到最新版本。

    【讨论】:

      【解决方案6】:

      我也遇到了这个问题,是 xcode 11.4 更新,我运行的是 stripe v15.0.1。

      我刚刚将我的条带版本更新到 v15.0.2。根据您的版本,您可以检查: https://github.com/stripe/stripe-ios/issues/1525#issuecomment-604037716

      【讨论】:

        【解决方案7】:

        我在 Pod 文件中将 Stripe SDK 设置为 19.0.1 版本并运行 pod update 命令

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-22
          • 1970-01-01
          • 2015-11-28
          • 1970-01-01
          • 2020-12-16
          • 1970-01-01
          相关资源
          最近更新 更多