我曾经遇到过这个问题。如果您没有完成交易(无论出于什么原因),它们会留在队列中。这会导致持续的“登录屏幕”问题。
SKPaymentQueue.default().finishTransaction(transaction)
应该放在以下位置的末尾:
restore(transaction: SKPaymentTransaction)
fail(transaction: SKPaymentTransaction)
complete(transaction: SKPaymentTransaction)