Ссылка на любое приложение в AppStore через SKStoreProductViewController
С приложением SKStoreProductViewController можно легко связать свое приложение в магазине приложений.Но я немного постарался, поэтому решил показать здесь весь процесс и некоторый необходимый код.Этот метод также гарантирует, что всегда будет использоваться правильное хранилище (важно для локализованных приложений).
Чтобы представить экран продукта любого приложения в магазине приложений в вашем приложении с любым из ваших приложений ViewControllers, выполните следующие действия.:
- Добавить StoreFit.framework в ваших настройках проекта (Target, Build Phases -> Link Binary With Libraries
- Импортировать StoreKit в класс ViewController
- Сделать ваш ViewController соответствующим этому протоколу SKStoreProductViewControllerDelegate
- Создать метод, чтобы представить StoreView с помощьютребуемый экран продукта
- Отклонить StoreView
Но самое важное: Это - по некоторым причинам - не работает в симуляторе- вам необходимо собрать и установить на реальном устройстве подключение к Интернету.
- Добавление StorKit.framework к вашему проекту:
SWIFT 4: Этот код соответствует описанным шагам:
// ----------------------------------------------------------------------------------------
// 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)
}
}