Я только что сделал это как ответ, чтобы он мог выделить точку, высказанную rmaddy в комментарии.
Важно
Использовать классы UIKit только из основного потока вашего приложения илиОсновная очередь отправки, если не указано иное.Это ограничение особенно относится к классам, производным от UIResponder или к которым относятся любые манипуляции с пользовательским интерфейсом вашего приложения.
https://developer.apple.com/documentation/uikit
И, как указал rmaddy, определение класса:
open class SKStoreProductViewController : UIViewController
Так что да, вам нужно использовать основной поток.