在我的[[Swift 3 iOS应用程序中为iOS facebook-ios-sdk
构建Facebook sdk时遇到问题。
FBSDKCorekit
和FBSDKLoginkit
Pod从版本[[4.30.0更新到了[[5.13.1]我正在使用针对iOS 10.2的XCode 9.3.1。使用XCode构建应用程序时,出现以下问题:未知类型名称'SKPaymentDiscount';您是说'SKProductDiscount'吗?
当编译器尝试构建以下文件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
...
[经过研究后,我了解到,SKPaymentDiscount
仅在iOS sdk 12.2中引入。由于我使用的是XCode 9.3.1,因此最新的可用iOS SDK为11.3,但条件编译器表达式为#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_12_1
应该确保编译器不会构建先前的代码段。
但是似乎并非如此,我遇到了构建错误。
未知类型名称'SKPaymentDiscount';您是说'SKProductDiscount'吗?
我已经尝试安装支持iOS sdk 12.2的XCode 10.0,但是出现了相同的错误。请指教。