Swift 应用内购买要求登录viewDidLoad并暂停整个应用

Swift 应用内购买要求登录viewDidLoad并暂停整个应用,swift,sprite-kit,in-app-purchase,Swift,Sprite Kit,In App Purchase,我在我的sprite kit游戏中没有应用程序内购买广告,到目前为止,我有以下信息: func requestProductData() { if SKPaymentQueue.canMakePayments() { let request = SKProductsRequest(productIdentifiers: self.productIdentifiers as Set<NSObject>) reque

我在我的sprite kit游戏中没有应用程序内购买广告,到目前为止,我有以下信息:

    func requestProductData()
{
    if SKPaymentQueue.canMakePayments() {
        let request = SKProductsRequest(productIdentifiers:
            self.productIdentifiers as Set<NSObject>)
        request.delegate = self
        request.start()
    } else {
        var alert = UIAlertController(title: "In-App Purchases Not Enabled", message: "Please enable In App Purchase in Settings", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Settings", style: UIAlertActionStyle.Default, handler: { alertAction in
            alert.dismissViewControllerAnimated(true, completion: nil)

            let url: NSURL? = NSURL(string: UIApplicationOpenSettingsURLString)
            if url != nil
            {
                UIApplication.sharedApplication().openURL(url!)
            }

        }))
        alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: { alertAction in
            alert.dismissViewControllerAnimated(true, completion: nil)
        }))
    }
}

func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) {

    var products = response.products

    if (products.count != 0) {
        for var i = 0; i < products.count; i++
        {
            self.product = products[i] as? SKProduct
            self.productsArray.append(product!)
        }
    } else {
        println("No products found")
    }

    products = response.invalidProductIdentifiers

    for product in products
    {
        println("Product not found: \(product)")
    }
}

func buyProduct() {
    let payment = SKPayment(product: productsArray[0])
    SKPaymentQueue.defaultQueue().addPayment(payment)
}

func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {

    for transaction in transactions as! [SKPaymentTransaction] {

        switch transaction.transactionState {

        case SKPaymentTransactionState.Purchased:
            println("Transaction Approved")
            println("Product Identifier: \(transaction.payment.productIdentifier)")
            self.deliverProduct(transaction)
            SKPaymentQueue.defaultQueue().finishTransaction(transaction)

        case SKPaymentTransactionState.Failed:
            println("Transaction Failed")
            SKPaymentQueue.defaultQueue().finishTransaction(transaction)
        default:
            break
        }
    }
}

func deliverProduct(transaction:SKPaymentTransaction) {

    if transaction.payment.productIdentifier == "productId"
    {
        println("unlocking")
    }
}

func restorePurchases() {
    SKPaymentQueue.defaultQueue().addTransactionObserver(self)
    SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}

func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {
    println("Transactions Restored")

    var purchasedItemIDS = []
    for transaction:SKPaymentTransaction in queue.transactions as! [SKPaymentTransaction] {

        if transaction.payment.productIdentifier == "productId"
        {
            println("unlocking")
            // Unlock Feature
        }
}
func requestProductData()
{
如果SKPaymentQueue.canMakePayments(){
let request=SKProductsRequest(产品标识符:
self.productIdentifiers(已设置)
request.delegate=self
request.start()
}否则{
var alert=UIAlertController(标题:“未启用应用内购买”,消息:“请在设置中启用应用内购买”,首选样式:UIAlertControllerStyle.alert)
addAction(UIAlertAction)(标题:“设置”,样式:UIAlertActionStyle.Default,处理程序:{alertAction in
alert.dismissViewControllerAnimated(真,完成:无)
让url:NSURL?=NSURL(字符串:UIApplicationOpenSettingsURLString)
如果url!=nil
{
UIApplication.sharedApplication().openURL(url!)
}
}))
addAction(UIAlertAction)(标题:“Ok”,样式:UIAlertActionStyle.Default,处理程序:{alertAction in
alert.dismissViewControllerAnimated(真,完成:无)
}))
}
}
func productsRequest(请求:SKProductsRequest!,DID接收方响应:SKProductsResponse!){
var products=response.products
如果(products.count!=0){
对于var i=0;i
这个游戏有一个极简的用户界面:它有一个暂停按钮,如果按下这个按钮,除了我的背景动画之外,所有的东西都会暂停,在一些节点上增加不透明度遮罩,并且通常会使屏幕变暗。它还提示没有广告按钮和关卡转换界面

好的,我遇到的问题是:1)如果我按下no ads按钮,警报视图将显示并暂停所有内容,当解除警报时,将再次启动所有内容。是否有方法调用此警报视图,使其不会与我的UI交互


2) 它还要求我在游戏加载时登录。我如何停止此操作?

这可能与此有关吗?不,我正在调用finish transaction方法,并且我没有弄乱我的沙盒acc