Apparently, SKStoreProductViewController intended only for purchasing applications in the App Store, and not for viewing products. This can be implicitly understood from Apple docs :
The SKStoreProductViewController object is a repository in which it allows the user to purchase other media from the App Store. For example, your application may display storage to allow the user to purchase another application.
As long as this limitation exists, the only workaround is to deeply bind to the App Store app, for example.
let url = NSURLComponents(string: "itms-apps://itunes.apple.com/app/id\(yourAppleAppId)")! UIApplication.sharedApplication().openURL(url)
Update for iOS 10.3 +
SKStoreReviewController allows users to evaluate the application directly from the application through a dialog box. The only downsite is that you can only request StoreKit to display a dialog box, but you cannot be sure what it will be.
Tells StoreKit to ask the user to rate or view your application, if necessary.

Keep in mind that Apple is likely to abandon user app ratings and reviews in the near future with the introduction of SKStoreReviewController . Application Validation Guides say:
Use the provided API to invite users to view your application; this functionality allows customers to provide ratings on the App Store and browse without inconvenience, leaving their application , and we will prohibit user checks.
The current drawback, and probably the reason that user validations are allowed, is that Apple has not yet provided an API to get review metrics and send responses to written reviews. The only current solution through iTunes Connect that is not practical for large scale and performance requirements in customer service environments.
Manuel
source share