Ma c Ошибка катализатора: невозможно переопределить 'paymentQueue', который был отмечен как недоступный - PullRequest
2 голосов
/ 01 мая 2020

У меня есть приложение iOS в Swift, которое реализует метод paymentQueue(_:shouldAddStorePayment:for:) в SKPaymentTransactionObserver. Однако, когда я портирую это приложение на Ma c, используя Ma c Catalyst, всякий раз, когда я пытаюсь скомпилировать и запускать его на Ma c, он выдает мне эту ошибку компиляции, которая говорит: «Невозможно переопределить« paymentQueue », которая была помечен как недоступный ".

Я попытался добавить операторы #if os(iOS) ... #endif и @available(iOS 11, *) вокруг метода paymentQueue, но он все еще дает мне эту ошибку.

Вот код ошибки на данный момент:

#if os(iOS)
func paymentQueue(_ queue: SKPaymentQueue, shouldAddStorePayment payment: SKPayment, for product: SKProduct) -> Bool {
    return true
}
#endif

Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

1 голос
/ 01 мая 2020

Вы можете предотвратить компиляцию кода в Ma c Сборка Catalyst с условием !targetEnvironment(macCatalyst):

#if !targetEnvironment(macCatalyst)
func paymentQueue(_ queue: SKPaymentQueue,
                  shouldAddStorePayment payment: SKPayment,
                  for product: SKProduct) -> Bool {
    return true
}
#endif
...