Ios 未知类型名称';SKPaymentDiscount';。FBSDKCoreKit

Ios 未知类型名称';SKPaymentDiscount';。FBSDKCoreKit,ios,xcode,facebook,swift3,facebook-ios-sdk,Ios,Xcode,Facebook,Swift3,Facebook Ios Sdk,在我的Swift 3 iOS应用程序中为iOSFacebook iOS sdk构建Facebook sdk时,我面临一个问题 我最近将iOS应用程序中使用的FBSDKCorekit和FBSDKLoginkitpods从版本4.30.0更新为5.13.1 我正在使用针对iOS 10.2的XCode 9.3.1。使用XCode构建应用程序时,我遇到了以下问题:未知类型名称“SKPaymentDiscount”;你是说“SKProduct折扣”吗? 当编译器尝试生成以下文件Core/FBSDKPaym

在我的Swift 3 iOS应用程序中为iOS
Facebook iOS sdk
构建Facebook sdk时,我面临一个问题

我最近将iOS应用程序中使用的
FBSDKCorekit
FBSDKLoginkit
pods从版本4.30.0更新为5.13.1

我正在使用针对iOS 10.2的XCode 9.3.1。使用XCode构建应用程序时,我遇到了以下问题:未知类型名称“SKPaymentDiscount”;你是说“SKProduct折扣”吗?

当编译器尝试生成以下文件
Core/FBSDKPaymentObserver.m
时,会引发此错误。见以下部分

...
#if !TARGET_OS_TV
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_11_1
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_11_4
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_12_1
  // promotional offer starting from iOS 12.2
  if (@available(iOS 12.2, *)) {
    SKPaymentDiscount *paymentDiscount = transaction.payment.paymentDiscount;
    if (paymentDiscount) {
      NSArray<SKProductDiscount *> *discounts = product.discounts;
      for (SKProductDiscount *discount in discounts) {
        if (discount.paymentMode == SKProductDiscountPaymentModeFreeTrial &&
            [paymentDiscount.identifier isEqualToString:discount.identifier]) {
          return YES;
        }
      }
    }
  }
#endif
...
。。。
#如果!目标电视
#如果允许IPHONE操作系统版本最大值>IPHONE 11 1
#如果允许使用IPHONE操作系统版本最大值>IPHONE 11 4
#如果uuuiPhone\u OS_U版本\u MAX\u允许>\uu IPHONE\u 12\u 1
//从iOS 12.2开始的促销优惠
如果(@可用(iOS 12.2,*)){
SKPaymentDiscount*paymentDiscount=transaction.payment.paymentDiscount;
if(付款折扣){
NSArray*折扣=产品折扣;
对于(SKProduct折扣*折扣中的折扣){
if(折扣.paymentMode==SKProductDiscountPaymentModeFreeTrial&&
[paymentDiscount.identifier IseQualtString:discount.identifier]){
返回YES;
}
}
}
}
#恩迪夫
...
在做了一些研究之后,我了解到,
SKPaymentDiscount
仅在iOS sdk 12.2中引入。由于我使用的是XCode 9.3.1,最新的iOS SDK是11.3,但条件编译器表达式
#if\uu IPHONE\u OS\u VERSION\u MAX\u ALLOWED>u IPHONE\u 12\u 1
应该确保编译器没有生成上一个代码段

然而,情况似乎并非如此,我得到了构建错误。 未知类型名称“SKPaymentDiscount”;你是说“SKProduct折扣”吗?


我曾尝试安装支持iOSSDK12.2的XCode 10.0,但出现了相同的错误。请告知。

您应该更新到Xcode 11.3.1。这是截至2020年1月的最新版本