Documentation Archive Developer
Search

StoreKit Changes for Swift

StoreKit

Declaration
From
struct SKCloudServiceCapability : OptionSet {
    init(rawValue rawValue: UInt)
    static var none: SKCloudServiceCapability { get }
    static var musicCatalogPlayback: SKCloudServiceCapability { get }
    static var addToCloudMusicLibrary: SKCloudServiceCapability { get }
    func intersect(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func exclusiveOr(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    mutating func unionInPlace(_ other: SKCloudServiceCapability)
    mutating func intersectInPlace(_ other: SKCloudServiceCapability)
    mutating func exclusiveOrInPlace(_ other: SKCloudServiceCapability)
    func isSubsetOf(_ other: SKCloudServiceCapability) -> Bool
    func isDisjointWith(_ other: SKCloudServiceCapability) -> Bool
    func isSupersetOf(_ other: SKCloudServiceCapability) -> Bool
    mutating func subtractInPlace(_ other: SKCloudServiceCapability)
    func isStrictSupersetOf(_ other: SKCloudServiceCapability) -> Bool
    func isStrictSubsetOf(_ other: SKCloudServiceCapability) -> Bool
}
extension SKCloudServiceCapability {
    func union(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func intersection(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func symmetricDifference(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
}
extension SKCloudServiceCapability {
    func contains(_ member: SKCloudServiceCapability) -> Bool
    mutating func insert(_ newMember: SKCloudServiceCapability) -> (inserted: Bool, memberAfterInsert: SKCloudServiceCapability)
    mutating func remove(_ member: SKCloudServiceCapability) -> SKCloudServiceCapability?
    mutating func update(with newMember: SKCloudServiceCapability) -> SKCloudServiceCapability?
}
extension SKCloudServiceCapability {
    convenience init()
    mutating func formUnion(_ other: SKCloudServiceCapability)
    mutating func formIntersection(_ other: SKCloudServiceCapability)
    mutating func formSymmetricDifference(_ other: SKCloudServiceCapability)
}
extension SKCloudServiceCapability {
    convenience init<S : Sequence where S.Iterator.Element == SKCloudServiceCapability>(_ sequence: S)
    convenience init(arrayLiteral arrayLiteral: SKCloudServiceCapability...)
    mutating func subtract(_ other: SKCloudServiceCapability)
    func isSubset(of other: SKCloudServiceCapability) -> Bool
    func isSuperset(of other: SKCloudServiceCapability) -> Bool
    func isDisjoint(with other: SKCloudServiceCapability) -> Bool
    func subtracting(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    var isEmpty: Bool { get }
    func isStrictSuperset(of other: SKCloudServiceCapability) -> Bool
    func isStrictSubset(of other: SKCloudServiceCapability) -> Bool
}
To
struct SKCloudServiceCapability : OptionSet {
    init(rawValue rawValue: UInt)
    static var none: SKCloudServiceCapability { get }
    static var musicCatalogPlayback: SKCloudServiceCapability { get }
    static var musicCatalogSubscriptionEligible: SKCloudServiceCapability { get }
    static var addToCloudMusicLibrary: SKCloudServiceCapability { get }
    func intersect(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func exclusiveOr(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    mutating func unionInPlace(_ other: SKCloudServiceCapability)
    mutating func intersectInPlace(_ other: SKCloudServiceCapability)
    mutating func exclusiveOrInPlace(_ other: SKCloudServiceCapability)
    func isSubsetOf(_ other: SKCloudServiceCapability) -> Bool
    func isDisjointWith(_ other: SKCloudServiceCapability) -> Bool
    func isSupersetOf(_ other: SKCloudServiceCapability) -> Bool
    mutating func subtractInPlace(_ other: SKCloudServiceCapability)
    func isStrictSupersetOf(_ other: SKCloudServiceCapability) -> Bool
    func isStrictSubsetOf(_ other: SKCloudServiceCapability) -> Bool
}
extension SKCloudServiceCapability {
    func union(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func intersection(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    func symmetricDifference(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
}
extension SKCloudServiceCapability {
    func contains(_ member: SKCloudServiceCapability) -> Bool
    mutating func insert(_ newMember: SKCloudServiceCapability) -> (inserted: Bool, memberAfterInsert: SKCloudServiceCapability)
    mutating func remove(_ member: SKCloudServiceCapability) -> SKCloudServiceCapability?
    mutating func update(with newMember: SKCloudServiceCapability) -> SKCloudServiceCapability?
}
extension SKCloudServiceCapability {
    convenience init()
    mutating func formUnion(_ other: SKCloudServiceCapability)
    mutating func formIntersection(_ other: SKCloudServiceCapability)
    mutating func formSymmetricDifference(_ other: SKCloudServiceCapability)
}
extension SKCloudServiceCapability {
    convenience init<S : Sequence where S.Iterator.Element == SKCloudServiceCapability>(_ sequence: S)
    convenience init(arrayLiteral arrayLiteral: SKCloudServiceCapability...)
    mutating func subtract(_ other: SKCloudServiceCapability)
    func isSubset(of other: SKCloudServiceCapability) -> Bool
    func isSuperset(of other: SKCloudServiceCapability) -> Bool
    func isDisjoint(with other: SKCloudServiceCapability) -> Bool
    func subtracting(_ other: SKCloudServiceCapability) -> SKCloudServiceCapability
    var isEmpty: Bool { get }
    func isStrictSuperset(of other: SKCloudServiceCapability) -> Bool
    func isStrictSubset(of other: SKCloudServiceCapability) -> Bool
}

Declaration
From
class SKStoreProductViewController : UIViewController {
    unowned(unsafe) var delegate: SKStoreProductViewControllerDelegate?
    func loadProduct(withParameters parameters: [String : Any], completionBlock block: (@escaping (Bool, Error?) -> Swift.Void)? = nil)
    var tabBarItem: UITabBarItem!
    var tabBarController: UITabBarController? { get }
    var splitViewController: UISplitViewController? { get }
    func collapseSecondaryViewController(_ secondaryViewController: UIViewController, for splitViewController: UISplitViewController)
    func separateSecondaryViewController(for splitViewController: UISplitViewController) -> UIViewController?
    var transitionCoordinator: UIViewControllerTransitionCoordinator? { get }
    var isModalInPopover: Bool
    var contentSizeForViewInPopover: CGSize
    var toolbarItems: [UIBarButtonItem]?
    func setToolbarItems(_ toolbarItems: [UIBarButtonItem]?, animated animated: Bool)
    var navigationItem: UINavigationItem { get }
    var hidesBottomBarWhenPushed: Bool
    var navigationController: UINavigationController? { get }
    var previewActionItems: [UIPreviewActionItem] { get }
    func registerForPreviewing(with delegate: UIViewControllerPreviewingDelegate, sourceView sourceView: UIView) -> UIViewControllerPreviewing
    func unregisterForPreviewing(withContext previewing: UIViewControllerPreviewing)
    var presentationController: UIPresentationController? { get }
    var popoverPresentationController: UIPopoverPresentationController? { get }
    func addKeyCommand(_ keyCommand: UIKeyCommand)
    func removeKeyCommand(_ keyCommand: UIKeyCommand)
    var topLayoutGuide: UILayoutSupport { get }
    var bottomLayoutGuide: UILayoutSupport { get }
    weak var transitioningDelegate: UIViewControllerTransitioningDelegate?
    func updateViewConstraints()
    func automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers() -> Bool
    func shouldAutomaticallyForwardRotationMethods() -> Bool
    var shouldAutomaticallyForwardAppearanceMethods: Bool { get }
    func willMove(toParentViewController parent: UIViewController?)
    func didMove(toParentViewController parent: UIViewController?)
    var childViewControllers: [UIViewController] { get }
    func addChildViewController(_ childController: UIViewController)
    func removeFromParentViewController()
    func transition(from fromViewController: UIViewController, to toViewController: UIViewController, duration duration: TimeInterval, options options: UIViewAnimationOptions = [], animations animations: (@escaping () -> Void)?, completion completion: (@escaping (Bool) -> Void)? = nil)
    func beginAppearanceTransition(_ isAppearing: Bool, animated animated: Bool)
    func endAppearanceTransition()
    var childViewControllerForStatusBarStyle: UIViewController? { get }
    var childViewControllerForStatusBarHidden: UIViewController? { get }
    func setOverrideTraitCollection(_ collection: UITraitCollection?, forChildViewController childViewController: UIViewController)
    func overrideTraitCollection(forChildViewController childViewController: UIViewController) -> UITraitCollection?
    var searchDisplayController: UISearchDisplayController? { get }
    var isEditing: Bool
    func setEditing(_ editing: Bool, animated animated: Bool)
    var editButtonItem: UIBarButtonItem { get }
    class func attemptRotationToDeviceOrientation()
    func shouldAutorotate(to toInterfaceOrientation: UIInterfaceOrientation) -> Bool
    var shouldAutorotate: Bool { get }
    var supportedInterfaceOrientations: UIInterfaceOrientationMask { get }
    var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { get }
    func rotatingHeaderView() -> UIView?
    func rotatingFooterView() -> UIView?
    var interfaceOrientation: UIInterfaceOrientation { get }
    func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didRotate(from fromInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func willAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateSecondHalfOfRotation(from fromInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    var userActivity: NSUserActivity?
    func updateUserActivityState(_ activity: NSUserActivity)
    func restoreUserActivityState(_ activity: NSUserActivity)
    var inputView: UIView? { get }
    var inputAccessoryView: UIView? { get }
    var inputAssistantItem: UITextInputAssistantItem { get }
    var inputViewController: UIInputViewController? { get }
    var inputAccessoryViewController: UIInputViewController? { get }
    var textInputMode: UITextInputMode? { get }
    var textInputContextIdentifier: String? { get }
    class func clearTextInputContextIdentifier(_ identifier: String)
    func reloadInputViews()
    var keyCommands: [UIKeyCommand]? { get }
    func awakeFromNib()
    func prepareForInterfaceBuilder()
    func accessibilityActivate() -> Bool
    func accessibilityIncrement()
    func accessibilityDecrement()
    func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool
    func accessibilityPerformEscape() -> Bool
    func accessibilityPerformMagicTap() -> Bool
    var accessibilityCustomActions: [UIAccessibilityCustomAction]?
    func accessibilityElementDidBecomeFocused()
    func accessibilityElementDidLoseFocus()
    func accessibilityElementIsFocused() -> Bool
    func accessibilityAssistiveTechnologyFocusedIdentifiers() -> Set<String>?
    func accessibilityElementCount() -> Int
    func accessibilityElement(at index: Int) -> Any?
    func index(ofAccessibilityElement element: Any) -> Int
    var accessibilityElements: [Any]?
    var isAccessibilityElement: Bool
    var accessibilityLabel: String?
    var accessibilityHint: String?
    var accessibilityValue: String?
    var accessibilityTraits: UIAccessibilityTraits
    var accessibilityFrame: CGRect
    @NSCopying var accessibilityPath: UIBezierPath?
    var accessibilityActivationPoint: CGPoint
    var accessibilityLanguage: String?
    var accessibilityElementsHidden: Bool
    var accessibilityViewIsModal: Bool
    var shouldGroupAccessibilityChildren: Bool
    var accessibilityNavigationStyle: UIAccessibilityNavigationStyle
    var accessibilityHeaderElements: [Any]?
    var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
    func provideImageData(_ data: UnsafeMutableRawPointer, bytesPerRow rowbytes: Int, origin x: Int, _ y: Int, size width: Int, _ height: Int, userInfo info: Any?)
}
extension SKStoreProductViewController : NSExtensionRequestHandling {
    var extensionContext: NSExtensionContext? { get }
}
extension SKStoreProductViewController : UIStateRestoring {
    var restorationIdentifier: String?
    var restorationClass: UIViewControllerRestoration.Type?
    func encodeRestorableState(with coder: NSCoder)
    func decodeRestorableState(with coder: NSCoder)
    func applicationFinishedRestoringState()
}
extension SKStoreProductViewController : CVarArg {
}
extension SKStoreProductViewController : Equatable, Hashable {
    var hashValue: Int { get }
}
To
class SKStoreProductViewController : UIViewController {
    unowned(unsafe) var delegate: SKStoreProductViewControllerDelegate?
    func loadProduct(withParameters parameters: [String : Any], completionBlock block: ((Bool, Error?) -> Swift.Void)? = nil)
    var tabBarItem: UITabBarItem!
    var tabBarController: UITabBarController? { get }
    var splitViewController: UISplitViewController? { get }
    func collapseSecondaryViewController(_ secondaryViewController: UIViewController, for splitViewController: UISplitViewController)
    func separateSecondaryViewController(for splitViewController: UISplitViewController) -> UIViewController?
    var transitionCoordinator: UIViewControllerTransitionCoordinator? { get }
    var isModalInPopover: Bool
    var contentSizeForViewInPopover: CGSize
    var toolbarItems: [UIBarButtonItem]?
    func setToolbarItems(_ toolbarItems: [UIBarButtonItem]?, animated animated: Bool)
    var navigationItem: UINavigationItem { get }
    var hidesBottomBarWhenPushed: Bool
    var navigationController: UINavigationController? { get }
    var previewActionItems: [UIPreviewActionItem] { get }
    func registerForPreviewing(with delegate: UIViewControllerPreviewingDelegate, sourceView sourceView: UIView) -> UIViewControllerPreviewing
    func unregisterForPreviewing(withContext previewing: UIViewControllerPreviewing)
    var presentationController: UIPresentationController? { get }
    var popoverPresentationController: UIPopoverPresentationController? { get }
    func addKeyCommand(_ keyCommand: UIKeyCommand)
    func removeKeyCommand(_ keyCommand: UIKeyCommand)
    var topLayoutGuide: UILayoutSupport { get }
    var bottomLayoutGuide: UILayoutSupport { get }
    weak var transitioningDelegate: UIViewControllerTransitioningDelegate?
    func updateViewConstraints()
    func automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers() -> Bool
    func shouldAutomaticallyForwardRotationMethods() -> Bool
    var shouldAutomaticallyForwardAppearanceMethods: Bool { get }
    func willMove(toParentViewController parent: UIViewController?)
    func didMove(toParentViewController parent: UIViewController?)
    var childViewControllers: [UIViewController] { get }
    func addChildViewController(_ childController: UIViewController)
    func removeFromParentViewController()
    func transition(from fromViewController: UIViewController, to toViewController: UIViewController, duration duration: TimeInterval, options options: UIViewAnimationOptions = [], animations animations: (() -> Void)?, completion completion: ((Bool) -> Void)? = nil)
    func beginAppearanceTransition(_ isAppearing: Bool, animated animated: Bool)
    func endAppearanceTransition()
    var childViewControllerForStatusBarStyle: UIViewController? { get }
    var childViewControllerForStatusBarHidden: UIViewController? { get }
    func setOverrideTraitCollection(_ collection: UITraitCollection?, forChildViewController childViewController: UIViewController)
    func overrideTraitCollection(forChildViewController childViewController: UIViewController) -> UITraitCollection?
    var searchDisplayController: UISearchDisplayController? { get }
    var isEditing: Bool
    func setEditing(_ editing: Bool, animated animated: Bool)
    var editButtonItem: UIBarButtonItem { get }
    class func attemptRotationToDeviceOrientation()
    func shouldAutorotate(to toInterfaceOrientation: UIInterfaceOrientation) -> Bool
    var shouldAutorotate: Bool { get }
    var supportedInterfaceOrientations: UIInterfaceOrientationMask { get }
    var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { get }
    func rotatingHeaderView() -> UIView?
    func rotatingFooterView() -> UIView?
    var interfaceOrientation: UIInterfaceOrientation { get }
    func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didRotate(from fromInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func willAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateSecondHalfOfRotation(from fromInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    var userActivity: NSUserActivity?
    func updateUserActivityState(_ activity: NSUserActivity)
    func restoreUserActivityState(_ activity: NSUserActivity)
    var inputView: UIView? { get }
    var inputAccessoryView: UIView? { get }
    var inputAssistantItem: UITextInputAssistantItem { get }
    var inputViewController: UIInputViewController? { get }
    var inputAccessoryViewController: UIInputViewController? { get }
    var textInputMode: UITextInputMode? { get }
    var textInputContextIdentifier: String? { get }
    class func clearTextInputContextIdentifier(_ identifier: String)
    func reloadInputViews()
    var keyCommands: [UIKeyCommand]? { get }
    func awakeFromNib()
    func prepareForInterfaceBuilder()
    func accessibilityActivate() -> Bool
    func accessibilityIncrement()
    func accessibilityDecrement()
    func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool
    func accessibilityPerformEscape() -> Bool
    func accessibilityPerformMagicTap() -> Bool
    var accessibilityCustomActions: [UIAccessibilityCustomAction]?
    func accessibilityElementDidBecomeFocused()
    func accessibilityElementDidLoseFocus()
    func accessibilityElementIsFocused() -> Bool
    func accessibilityAssistiveTechnologyFocusedIdentifiers() -> Set<String>?
    func accessibilityElementCount() -> Int
    func accessibilityElement(at index: Int) -> Any?
    func index(ofAccessibilityElement element: Any) -> Int
    var accessibilityElements: [Any]?
    var isAccessibilityElement: Bool
    var accessibilityLabel: String?
    var accessibilityHint: String?
    var accessibilityValue: String?
    var accessibilityTraits: UIAccessibilityTraits
    var accessibilityFrame: CGRect
    @NSCopying var accessibilityPath: UIBezierPath?
    var accessibilityActivationPoint: CGPoint
    var accessibilityLanguage: String?
    var accessibilityElementsHidden: Bool
    var accessibilityViewIsModal: Bool
    var shouldGroupAccessibilityChildren: Bool
    var accessibilityNavigationStyle: UIAccessibilityNavigationStyle
    var accessibilityHeaderElements: [Any]?
    var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
    func provideImageData(_ data: UnsafeMutableRawPointer, bytesPerRow rowbytes: Int, origin x: Int, _ y: Int, size width: Int, _ height: Int, userInfo info: Any?)
}
extension SKStoreProductViewController : NSExtensionRequestHandling {
    var extensionContext: NSExtensionContext? { get }
}
extension SKStoreProductViewController : UIStateRestoring {
    var restorationIdentifier: String?
    var restorationClass: UIViewControllerRestoration.Type?
    func encodeRestorableState(with coder: NSCoder)
    func decodeRestorableState(with coder: NSCoder)
    func applicationFinishedRestoringState()
}
extension SKStoreProductViewController : CVarArg {
}
extension SKStoreProductViewController : Equatable, Hashable {
    var hashValue: Int { get }
}

Declaration
From
func loadProduct(withParameters parameters: [String : Any], completionBlock block: (@escaping (Bool, Error?) -> Swift.Void)? = nil)
To
func loadProduct(withParameters parameters: [String : Any], completionBlock block: ((Bool, Error?) -> Swift.Void)? = nil)