У меня возникла проблема при создании SDK Facebook для iOS facebook-ios-sdk
в моем Swift 3 iOS приложении .
. Я недавно обновил FBSDKCorekit
и FBSDKLoginkit
стручков, которые я использую в своем iOS приложении с версии 4.30.0 до 5.13.1
Я использую таргетинг XCode 9.3.1 iOS 10.2. при создании приложения с помощью 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»?
Я пытался установить XCode 10.0, который поддерживает iOS sdk 12.2, но я получил ту же ошибку. Пожалуйста, сообщите.