Как сделать ссылку на приложение в магазине приложений
Я создаю бесплатную версию моей игры для iPhone. Я хочу, чтобы внутри бесплатной версии была кнопка, с помощью которой люди переходят на платную версию в магазине приложений. Если я использую стандартную ссылку
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
iPhone сначала открывает Safari, а затем магазин приложений. Я использовал другие приложения, которые открывают магазин приложений напрямую, поэтому я знаю, что это возможно.
Есть идеи? Что такое схема URL для магазина приложений?
28 ответов
Отредактировано 2016-02-02
Начиная с iOS 6 был представлен класс SKStoreProductViewController. Вы можете связать приложение, не выходя из приложения. Фрагмент кода в Swift 3.x/2.x и Objective-C здесь.
Объект SKStoreProductViewController представляет магазин, который позволяет пользователю приобретать другие медиафайлы в App Store. Например, ваше приложение может отображать магазин, чтобы позволить пользователю приобрести другое приложение.
Из новостей и объявлений для разработчиков Apple.
Привлекайте клиентов прямо к своему приложению в App Store с помощью ссылок iTunes. С помощью ссылок iTunes вы можете предоставить своим клиентам простой способ доступа к вашим приложениям в App Store прямо с вашего веб-сайта или маркетинговых кампаний. Создать ссылку на iTunes легко и просто, чтобы направить клиентов либо в одно приложение, во все ваши приложения, либо в конкретное приложение с указанием названия вашей компании.
Чтобы отправить клиентов на конкретное приложение: http://itunes.com/apps/appname
Чтобы отправить клиентов в список приложений, которые есть в App Store: http://itunes.com/apps/developername
Чтобы отправить клиентов в определенное приложение с указанием названия вашей компании в URL: http://itunes.com/apps/developername/appname
Дополнительные примечания:
Вы можете заменить http://
с itms://
или же itms-apps://
чтобы избежать перенаправлений.
Для получения информации о наименовании см. Apple QA1633:
https://developer.apple.com/library/content/qa/qa1633/_index.html.
Изменить (по состоянию на январь 2015 года):
Ссылки на itunes.com/apps должны быть обновлены до appstore.com/apps. См. QA1633 выше, который был обновлен. Новый QA1629 предлагает эти шаги и код для запуска магазина из приложения:
- Запустите iTunes на вашем компьютере.
- Найдите предмет, на который хотите сослаться.
- Щелкните правой кнопкой мыши или удерживайте нажатой клавишу "Control" на названии элемента в iTunes, затем выберите "Копировать URL-адрес iTunes Store" во всплывающем меню.
- В вашем приложении создайте
NSURL
объект с скопированным URL-адресом iTunes, затем передайте этот объектUIApplication
хopenURL
: метод, чтобы открыть свой предмет в App Store.
Образец кода:
NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
Swift 3.0
let urlStr = "itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8"
if #available(iOS 10.0, *) {
UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(URL(string: urlStr)!)
}
Если вы хотите открыть приложение непосредственно в App Store, вы должны использовать:
ITMS-приложения: //...
Таким образом, он будет непосредственно открывать приложение App Store на устройстве, вместо того, чтобы сначала идти в iTunes, а затем только открывать App Store (при использовании только itms://)
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: APR, 2017. itms-apps:// фактически снова работает в iOS10. Я проверял это.
РЕДАКТИРОВАТЬ: APR, 2013. Это больше не работает в iOS5 и выше. Просто используйте
https://itunes.apple.com/app/id378458261
и больше нет перенаправлений.
Чтобы быть чрезвычайно кратким:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]];
Если вы хотите отправить все приложения для разработчика, используйте
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername"]];
Это работает для iOS 4.1
Если вы хотите сослаться на приложения разработчика, а имя разработчика содержит знаки препинания или пробелы (например, Development Company, LLC), создайте свой URL-адрес следующим образом:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.com/apps/DevelopmentCompanyLLC"]];
В противном случае он возвращает "Этот запрос не может быть обработан" на iOS 4.3.3.
Начиная с iOS 6 правильный способ сделать это с помощью класса SKStoreProductViewController.
Swift 3.x:
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.present(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier(identifier: "13432")
Вы можете получить идентификатор элемента приложения в itunes, например: (вместо статического)
Swift 3.2
var appID: String = infoDictionary["CFBundleIdentifier"]
var url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(appID)")
var data = Data(contentsOf: url!)
var lookup = try? JSONSerialization.jsonObject(with: data!, options: []) as? [AnyHashable: Any]
var appITunesItemIdentifier = lookup["results"][0]["trackId"] as? String
openStoreProductViewController(withITunesItemIdentifier: Int(appITunesItemIdentifier!) ?? 0)
Swift 2.x:
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.presentViewController(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")
цель-C:
static NSInteger const kAppITunesItemIdentifier = 324684580;
[self openStoreProductViewControllerWithITunesItemIdentifier:kAppITunesItemIdentifier];
- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
storeViewController.delegate = self;
NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];
NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
UIViewController *viewController = self.window.rootViewController;
[storeViewController loadProductWithParameters:parameters
completionBlock:^(BOOL result, NSError *error) {
if (result)
[viewController presentViewController:storeViewController
animated:YES
completion:nil];
else NSLog(@"SKStoreProductViewController: %@", error);
}];
[storeViewController release];
}
#pragma mark - SKStoreProductViewControllerDelegate
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
Ты можешь получить
kAppITunesItemIdentifier
(идентификатор элемента приложения в itunes), например: (вместо статического)
NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString* appID = infoDictionary[@"CFBundleIdentifier"];
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
NSData* data = [NSData dataWithContentsOfURL:url];
NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString * appITunesItemIdentifier = lookup[@"results"][0][@"trackId"];
[self openStoreProductViewControllerWithITunesItemIdentifier:[appITunesItemIdentifier intValue]];
Apple только что объявила URL-адреса appstore.com.
https://developer.apple.com/library/ios/qa/qa1633/_index.html
Существует три типа коротких ссылок в App Store, в двух формах, один для приложений iOS, другой для приложений Mac:
название компании
iOS: http://appstore.com/ например, http://appstore.com/apple
Mac: http://appstore.com/mac/ например, http://appstore.com/mac/apple
Имя приложения
iOS: http://appstore.com/ например, http://appstore.com/keynote
Mac: http://appstore.com/mac/ например, http://appstore.com/mac/keynote
Приложение от компании
iOS: http://appstore.com// например, http://appstore.com/apple/keynote
Mac: http://appstore.com/mac// например, http://appstore.com/mac/apple/keynote
Большинство компаний и приложений имеют каноническую короткую ссылку в App Store. Этот канонический URL-адрес создается путем изменения или удаления определенных символов (многие из которых являются недопустимыми или имеют специальное значение в URL-адресе (например, "&")).
Чтобы создать короткую ссылку в App Store, примените следующие правила к названию вашей компании или приложения:
Удалить все пробелы
Конвертировать все символы в нижний регистр
Удалите все символы авторского права (©), товарного знака (™) и зарегистрированного знака (®)
Заменить амперсанды ("&") на "и"
Удалите большинство знаков препинания (см. Листинг 2)
Замените акцентированные и другие "украшенные" символы (ü, å и т. Д.) Их элементарными символами (u, a и т. Д.)
Оставьте все остальные символы как есть.
Перечисление 2 Знаки пунктуации, которые должны быть удалены.
! ¡ "# $% '() * +, - /:;<=>¿@[]^_`.? {|}~
Ниже приведены некоторые примеры, демонстрирующие происходящее преобразование.
Магазин приложений
Примеры названий компаний
Gameloft => http://appstore.com/gameloft
Activision Publishing, Inc. => http://appstore.com/activisionpublishinginc
Фотография и программное обеспечение Чена => http://appstore.com/chensphotographyandsoftware
Примеры названий приложений
Окарина => http://appstore.com/ocarina
Где мой Перри? => http://appstore.com/wheresmyperry
Brain Challenge ™ => http://appstore.com/brainchallenge
На лето 2015 года...
-(IBAction)clickedUpdate
{
NSString *simple = @"itms-apps://itunes.apple.com/app/id1234567890";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:simple]];
}
замените "id1234567890" на "id" и "ваш десятизначный номер"
Это прекрасно работает на всех устройствах.
Это идет прямо в магазин приложений, без перенаправлений.
Это нормально для всех национальных магазинов.
Это правда, вы должны перейти к использованию
loadProductWithParameters
, но если цель ссылки - обновить приложение, в котором вы фактически находитесь: возможно, лучше использовать этот "старомодный" подход.
To have a direct link without redirection:
- Use iTunes link maker http://itunes.apple.com/linkmaker/ to get the real direct link
- Заменить
http://
сitms-apps://
- Open the link with
[[UIApplication sharedApplication] openURL:url];
Be careful, those links only works on actual devices, not in simulator.
Этот код генерирует ссылку App Store на iOS
NSString *appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]];
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
Замените itms-приложения с http на Mac:
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"http:/itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
Открыть URL на iOS:
[[UIApplication sharedApplication] openURL:appStoreURL];
Mac:
[[NSWorkspace sharedWorkspace] openURL:appStoreURL];
Просто измените "itunes" на "Фобос" в ссылке на приложение.
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
Теперь он откроет App Store напрямую
Это отлично сработало, используя только APP ID:
NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
Количество переадресаций равно нулю.
В ряде ответов предлагается использовать "itms" или "itms-apps", но Apple не рекомендует эту практику. Они предлагают только следующий способ открыть App Store:
Перечисление 1, Запускающее App Store из приложения iOS
NSString *iTunesLink = @"https://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
См. https://developer.apple.com/library/ios/qa/qa1629/_index.html последнее обновление, март 2014 г., с этим ответом.
Для приложений, поддерживающих iOS 6 и выше, Apple предлагает встроенный механизм для представления App Store: SKStoreProductViewController
- (void)loadProductWithParameters:(NSDictionary *)parameters completionBlock:(void (^)(BOOL result, NSError *error))block;
// Example:
SKStoreProductViewController* spvc = [[SKStoreProductViewController alloc] init];
spvc.delegate = self;
[spvc loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier : @(364709193) } completionBlock:^(BOOL result, NSError *error){
if (error)
// Show sorry
else
// Present spvc
}];
Обратите внимание, что на iOS6 блок завершения может не вызываться, если есть ошибки. Похоже, это ошибка, которая была устранена в iOS 7.
Если вы хотите сослаться на приложения разработчика, а имя разработчика содержит знаки препинания или пробелы (например, Development Company, LLC), создайте свой URL-адрес следующим образом:
itms-apps://itunes.com/apps/DevelopmentCompanyLLC
Otherwise it returns "This request cannot be processed" on iOS 4.3.3
Вы можете получить ссылку на определенный элемент в магазине приложений или iTunes через производителя ссылок по адресу: http://itunes.apple.com/linkmaker/
Все ответы устарели и не работают; используйте метод ниже.
Все приложения разработчика:itms-apps://apps.apple.com/developer/developer-name/developerId
Одно приложение:itms-apps://itunes.apple.com/app/appId
Это работает и напрямую связывает в ios5
NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
Это простой и короткий способ перенаправить / связать другое существующее приложение в магазине приложений.
NSString *customURL = @"http://itunes.apple.com/app/id951386316";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}
Для Xcode 9.1 и Swift 4:
- Импорт StoreKit:
import StoreKit
2. соответствовать протоколу
SKStoreProductViewControllerDelegate
3. Реализовать протокол
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.present(storeViewController, animated: true, completion: nil)
}
}
}
3,1
func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
viewController.dismiss(animated: true, completion: nil)
}
- Как пользоваться:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")
Замечания:
Очень важно ввести точный идентификатор вашего приложения. Потому что это причина ошибки (не показывать журнал ошибок, но ничего не работает из-за этого)
Я могу подтвердить, что если вы создадите приложение в iTunes connect, вы получите идентификатор приложения перед его отправкой.
Следовательно..
itms-apps://itunes.apple.com/app/id123456789
NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];
if ([[UIApplication sharedApplication]canOpenURL:appStoreURL])
[[UIApplication sharedApplication]openURL:appStoreURL];
Работает лакомство
Я думаю, что Apple предоставила новую ссылку для ссылки на приложение: https://apps.apple.com/app/id1445530088 или https://apps.apple.com/app/ {your_app_id}
По крайней мере, iOS 9 и выше
- Открыть прямо в App Store
Приложение
itms-apps://itunes.apple.com/app/[appName]/[appID]
Список приложений разработчика
itms-apps://itunes.apple.com/developer/[developerName]/[developerID]
Несмотря на то, что здесь есть множество ответов, ни одно из предложений по связыванию с приложениями для разработчиков, похоже, больше не работает.
Когда я в последний раз посетил, я смог заставить его работать, используя формат:
itms-apps://itunes.apple.com/developer/developer-name/id123456789
Это больше не работает, но удаление имени разработчика делает:
itms-apps://itunes.apple.com/developer/id123456789
Согласно последнему документу Apple, вы должны использовать
appStoreLink = "https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"
или же
SKStoreProductViewController
Создание ссылки может стать сложной проблемой при поддержке нескольких ОС и нескольких платформ. Например, WebObjects не поддерживается в iOS 7 (некоторые из них), некоторые ссылки, которые вы создадите, откроют магазин в другой стране, чем пользователь и т. Д.
Существует библиотека с открытым исходным кодом под названием iLink, которая может вам помочь.
Преимущества этой библиотеки в том, что ссылки будут найдены и созданы во время выполнения (библиотека проверит идентификатор приложения и ОС, в которой оно работает, и выяснит, какую ссылку следует создать). Лучшее в этом то, что вам не нужно ничего настраивать перед использованием, так что это безошибочно и будет работать всегда. Это также хорошо, если у вас мало целей в одном проекте, поэтому вам не нужно помнить, какой идентификатор приложения или ссылку использовать. Эта библиотека также предложит пользователю обновить приложение, если в магазине появится новая версия (она встроена, и вы отключите ее простым флагом), указывающей на страницу обновления для приложения, если пользователь согласится.
Скопируйте 2 файла библиотеки в свой проект (iLink.h & iLink.m).
В вашем приложении Delegate.m:
#import "iLink.h"
+ (void)initialize
{
//configure iLink
[iLink sharedInstance].globalPromptForUpdate = YES; // If you want iLink to prompt user to update when the app is old.
}
и на месте, где вы хотите открыть страницу рейтинга, например, просто используйте:
[[iLink sharedInstance] iLinkOpenAppPageInAppStoreWithAppleID: YOUR_PAID_APP_APPLE_ID]; // You should find YOUR_PAID_APP_APPLE_ID from iTunes Connect
Не забудьте импортировать iLink.h в тот же файл.
Там есть очень хороший документ для всей библиотеки и примеры проектов для iPhone и Mac.
Если у вас есть идентификатор магазина приложений, лучше всего его использовать. Особенно, если вы в будущем можете изменить название приложения.
http://itunes.apple.com/app/id378458261
Если у вас нет идентификатора магазина приложений, вы можете создать URL на основе этой документации https://developer.apple.com/library/ios/qa/qa1633/_index.html
+ (NSURL *)appStoreURL
{
static NSURL *appStoreURL;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
appStoreURL = [self appStoreURLFromBundleName:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]];
});
return appStoreURL;
}
+ (NSURL *)appStoreURLFromBundleName:(NSString *)bundleName
{
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@", [self sanitizeAppStoreResourceSpecifier:bundleName]]];
return appStoreURL;
}
+ (NSString *)sanitizeAppStoreResourceSpecifier:(NSString *)resourceSpecifier
{
/*
https://developer.apple.com/library/ios/qa/qa1633/_index.html
To create an App Store Short Link, apply the following rules to your company or app name:
Remove all whitespace
Convert all characters to lower-case
Remove all copyright (©), trademark (™) and registered mark (®) symbols
Replace ampersands ("&") with "and"
Remove most punctuation (See Listing 2 for the set)
Replace accented and other "decorated" characters (ü, å, etc.) with their elemental character (u, a, etc.)
Leave all other characters as-is.
*/
resourceSpecifier = [resourceSpecifier stringByReplacingOccurrencesOfString:@"&" withString:@"and"];
resourceSpecifier = [[NSString alloc] initWithData:[resourceSpecifier dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding];
resourceSpecifier = [resourceSpecifier stringByReplacingOccurrencesOfString:@"[!¡\"#$%'()*+,-./:;<=>¿?@\\[\\]\\^_`{|}~\\s\\t\\n]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, resourceSpecifier.length)];
resourceSpecifier = [resourceSpecifier lowercaseString];
return resourceSpecifier;
}
Проходит этот тест
- (void)testAppStoreURLFromBundleName
{
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Nuclear™"].absoluteString, @"itms-apps://itunes.com/app/nuclear", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Magazine+"].absoluteString, @"itms-apps://itunes.com/app/magazine", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Karl & CO"].absoluteString, @"itms-apps://itunes.com/app/karlandco", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"[Fluppy fuck]"].absoluteString, @"itms-apps://itunes.com/app/fluppyfuck", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Pollos Hérmanos"].absoluteString, @"itms-apps://itunes.com/app/polloshermanos", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Niños and niñas"].absoluteString, @"itms-apps://itunes.com/app/ninosandninas", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"Trond, MobizMag"].absoluteString, @"itms-apps://itunes.com/app/trondmobizmag", nil);
STAssertEqualObjects([AGApplicationHelper appStoreURLFromBundleName:@"!__SPECIAL-PLIZES__!"].absoluteString, @"itms-apps://itunes.com/app/specialplizes", nil);
}
Большинство решений здесь устарели и устарели
Для тех, кто ищет обновленное рабочее решение
// let appStoreLink = "https://apps.apple.com/app/{app-name}/{app-id}"
guard let url = URL(string: Constants.App.appStoreLink) else { return }
UIApplication.shared.open(url)
Он откроет App Store напрямую
NSString *iTunesLink = @"itms-apps://itunes.apple.com/app/ebl-
skybanking/id1171655193?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
в SwiftUI — iOS 15.0
//
// Test.swift
// PharmaCodex
//
import SwiftUI
struct Test: View {
var body: some View {
VStack {
Button(action: {
guard let writeReviewURL = URL(string: "https://apps.apple.com/app/id1629135515?action=write-review") else {
fatalError("Expected a valid URL")
}
UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
}) {
Text("Rate/Review")
}
}
}
}
struct Test_Previews: PreviewProvider {
static var previews: some View {
Test()
}
}
Попробуй так
http://itunes.apple.com/lookup?id="идентификатор вашего приложения здесь" возвращает json. Отсюда найдите ключ "trackViewUrl", и значением будет нужный URL. используйте этот URL (просто замените https://
с itms-apps://
). Это работает просто отлично.
Например, если идентификатор вашего приложения - xyz, перейдите по этой ссылке http://itunes.apple.com/lookup?id=xyz
Затем найдите URL для ключа "trackViewUrl". Это URL вашего приложения в магазине приложений, и для использования этого URL в xcode попробуйте это
NSString *iTunesLink = @"itms-apps://itunes.apple.com/us/app/Your app name/id Your app ID?mt=8&uo=4";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
Спасибо