Ios Mac Catalyst错误:无法覆盖';支付队列';它已被标记为不可用

Ios Mac Catalyst错误:无法覆盖';支付队列';它已被标记为不可用,ios,swift,macos,in-app-purchase,mac-catalyst,Ios,Swift,Macos,In App Purchase,Mac Catalyst,我在Swift中有一个iOS应用程序,它在SKPaymentTransactionObserver中实现了paymentQueue(uu1;:shouldAddStorePayment:for:)方法。然而,当我使用Mac Catalyst将此应用程序移植到Mac时,每当我尝试在Mac上编译并运行它时,它都会给我一个编译错误,上面写着“无法覆盖已标记为不可用的‘paymentQueue’” 我尝试添加#if操作系统(iOS)#endif和@在paymentQueue方法周围可用(iOS 11,*

我在Swift中有一个iOS应用程序,它在
SKPaymentTransactionObserver
中实现了
paymentQueue(uu1;:shouldAddStorePayment:for:)
方法。然而,当我使用Mac Catalyst将此应用程序移植到Mac时,每当我尝试在Mac上编译并运行它时,它都会给我一个编译错误,上面写着“无法覆盖已标记为不可用的‘paymentQueue’”

我尝试添加
#if操作系统(iOS)#endif
@在
paymentQueue
方法周围可用(iOS 11,*)
语句,但它仍然给我这个错误

以下是当前错误缠身的代码:

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

还有人遇到这个问题吗?

您可以使用
阻止将代码编译到Mac Catalyst版本中!目标环境(macCatalyst)
条件:

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