Verknüpfung mit jeder App im AppStore über SKStoreProductViewController
Über SKStoreProductViewController können Sie ganz einfach eine Verbindung zu Ihrer App im App Store herstellen. Aber ich habe mich etwas schwer getan, also habe ich beschlossen, hier den gesamten Prozess und den notwendigen Code zu zeigen. Diese Technik stellt auch sicher, dass immer der richtige Store verwendet wird (wichtig für lokalisierte Apps).
Um den Produktbildschirm einer beliebigen App des App Stores innerhalb Ihrer App mit einem beliebigen ViewController Ihrer App zu präsentieren, gehen Sie wie folgt vor:
- hinzufügen das StoreKit.framework in Ihrem Projekt-Einstellungen (Ziel, Build-Phasen -> Binär mit Bibliotheken verknüpfen
- StoreKit importieren in die ViewController-Klasse
- Stellen Sie sicher, dass Ihr ViewController mit diesem Protokoll übereinstimmt SKStoreProductViewControllerDelegate
- Erstellen Sie die Methode zur die StoreView präsentieren mit dem gewünschten Produktbildschirm
- Ablehnen die StoreView
Aber das Wichtigste: Aus irgendeinem Grund funktioniert dies nicht im Simulator - Sie müssen es auf einem echten Gerät mit Internetverbindung erstellen und installieren.
- Hinzufügen des StorKit.framework zu Ihrem Projekt:
![Find this in your project settings]()
SWIFT 4: Dies ist der Code, der den beschriebenen Schritten vorausgeht:
// ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit
// ...
// within your ViewController
// ----------------------------------------------------------------------------------------
// 4. Create the method to present the StoreView with the product screen you want
// ----------------------------------------------------------------------------------------
func showStore() {
// Define parameter for product (here with ID-Number)
let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]
// Create a SKStoreProduktViewController instance
let storeViewController : SKStoreProductViewController = SKStoreProductViewController()
// set Delegate
storeViewController.delegate = self
// load product
storeViewController.loadProduct(withParameters: parameter) { (success, error) in
if success == true {
// show storeController
self.present(storeViewController, animated: true, completion: nil)
} else {
print("NO SUCCESS LOADING PRODUCT SCREEN")
print("Error ? : \(error?.localizedDescription)")
}
}
}
// ...
// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {
// ----------------------------------------------------------------------------------------
// 5. Dismiss the StoreView
// ----------------------------------------------------------------------------------------
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
viewController.dismiss(animated: true, completion: nil)
}
}