I'm using the SKStoreProductViewController to display an iTunes product with the following method. The method gets called, but I get no success or error. Any idea why?:
@IBAction func BuySomething(sender : AnyObject) {
    NSLog("%@","called");//gets called
    let storeViewController:SKStoreProductViewController = SKStoreProductViewController();
    storeViewController.delegate = self;
    var someitunesid:String = "676059878";
    var productparameters = [SKStoreProductParameterITunesItemIdentifier:someitunesid];
    storeViewController.loadProductWithParameters(productparameters, { (success: Bool!,          error: NSError!) -> Void in
        if success {
            NSLog("%@",success)//no call
            self.presentViewController(storeViewController, animated: true, completion: nil);
        } else {
            NSLog("%@", error)//no call
        }
    })
}
                For some reasons SKStoreProductViewController doesn't work on simulator, you must try it on actual device instead.
I just tried that on actual device and got an screenshot of how it looks like on the actual device after callback was called with success:
And here is the code I've used to do it:
import UIKit
import StoreKit
class ViewController: UIViewController,SKStoreProductViewControllerDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    @IBAction func BuySomething(sender : AnyObject) {
        NSLog("%@","called");//gets called
        let storeViewController:SKStoreProductViewController = SKStoreProductViewController();
        storeViewController.delegate = self;
        var someitunesid:String = "676059878";
        var productparameters = [SKStoreProductParameterITunesItemIdentifier:someitunesid];
        storeViewController.loadProductWithParameters(productparameters, {
            (success: Bool!,error: NSError!) -> Void in
            if success {
                NSLog("%@",success)
                self.presentViewController(storeViewController, animated: true, completion: nil);
            } else {
                NSLog("%@", error)
            }
            })
    }
    // this is SKStoreProductViewControllerDelegate implementation
    func productViewControllerDidFinish(viewController: SKStoreProductViewController!) {
    }
}

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With