Как сделать ссылку на приложение в магазине приложений

Я создаю бесплатную версию моей игры для iPhone. Я хочу, чтобы внутри бесплатной версии была кнопка, которая переносит людей на платную версию в магазине приложений. Если я использую стандартную ссылку

http: // itunes. яблоко. ком / WebObjects / MZStore. вуо / в / viewSoftware? id = 300136119 & mt = 8

iPhone сначала открывает Safari, а затем магазин приложений. Я использовал другие приложения, которые открывают магазин приложений напрямую, поэтому я знаю, что это возможно.

Есть идеи? Что такое схема URL для магазина приложений?

вопрос задан 11.01.2009
matt
1332 репутация

22 ответов


  • 699 рейтинг

    Отредактировано 2016-02-02

    Начиная с iOS 6 Представлен класс SKStoreProductViewController . Вы можете связать приложение, не выходя из приложения. Фрагмент кода в Swift 3. х / 2. x и Objective-C - это , здесь .

    Объект SKStoreProductViewController представляет хранилище, которое позволяет Пользователь может купить другие носители в App Store. Например, ваше приложение может отобразить магазин, чтобы позволить пользователю приобрести другое приложение.


    От Новости и объявления для разработчиков Apple .

    Привлеките клиентов прямо к вашему приложению в App Store с помощью iTunes Links С помощью ссылок iTunes вы можете предоставить клиенты с простым способом доступа ваши приложения в App Store напрямую с вашего сайта или маркетинга кампания. Создание ссылки на iTunes простой и может быть сделан для прямого клиенты либо одного приложения, все ваши приложения или конкретное приложение с указано название вашей компании.

    Чтобы отправить клиентов на определенный приложение: http: // itunes. com / apps / appname

    отправить клиенты к списку приложений, которые у вас есть в App Store: http: // itunes. com / apps / developername

    Чтобы отправить клиентов в определенное приложение с названием вашей компании, включенным в URL: http: // itunes. ru / apps / developername / appname


    Дополнительные примечания:

    Вы можете заменить http:// на itms:// или itms-apps://, чтобы избежать перенаправлений.

    Для получения информации о наименовании см. Apple QA1633:

    https: // разработчик. яблоко. ком / библиотека / содержание / ОК / qa1633 / _index. HTML .

    Редактировать (по состоянию на январь 2015 года):

    itunes. Ссылки com / apps должны быть обновлены до appstore. ком / приложения. См. QA1633 выше, который был обновлен. В новом QA1629 предлагаются следующие шаги и код для запуска магазина из приложения:

    1. Запустите iTunes на вашем компьютере.
    2. Найдите предмет, на который хотите сослаться.
    3. Щелкните правой кнопкой мыши или щелкните, удерживая клавишу Control, на имени элемента в iTunes, затем выберите «Копировать URL-адрес iTunes Store» во всплывающем меню.
    4. В своем приложении создайте объект NSURL с скопированным URL-адресом iTunes, затем передайте этот объект в метод openURL: UIApplication: чтобы открыть свой элемент в 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)!)
        }
    
    ответ дан Nathan S., с репутацией 4107, 25.02.2010
  • 325 рейтинг

    Если вы хотите открыть приложение непосредственно в App Store, вы должны использовать:

    itms-apps: //. , ,

    Таким образом, он будет непосредственно открывать приложение App Store на устройстве, вместо того, чтобы сначала идти в iTunes, а затем открывать только App Store (при использовании только itms: //)

    Надеюсь, что помогает.


    РЕДАКТИРОВАТЬ: APR, 2017. itms-apps: // фактически снова работает в iOS10. Я проверял это.

    РЕДАКТИРОВАТЬ: АПРЕЛЬ 2013. Это больше не работает в iOS5 и выше. Просто используйте

    https://itunes.apple.com/app/id378458261
    

    и перенаправлений больше нет.

    ответ дан GeneCode, с репутацией 5286, 30.12.2010
  • 162 рейтинг

    Чтобы быть чрезвычайно кратким:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]];
    

    Если вы хотите отправить все приложения для разработчика, используйте

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername"]];
    

    Это работает для iOS 4. 1

    Если вы хотите сослаться на приложения разработчика и имя разработчика содержит знаки препинания или пробелы (например, г. Девелоперская компания, ООО) сформируйте ваш URL следующим образом:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.com/apps/DevelopmentCompanyLLC"]];
    

    В противном случае он возвращает «Этот запрос не может быть обработан» на iOS 4. 3. 3

    ответ дан Intentss, с репутацией 7345, 8.11.2010
  • 45 рейтинг

    Начиная с 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")
    

    target-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]];
    
    ответ дан Ramis, с репутацией 4590, 14.08.2015
  • 34 рейтинг

    На лето 2015 года. , ,

    -(IBAction)clickedUpdate
    {
        NSString *simple = @"itms-apps://itunes.apple.com/app/id1234567890";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:simple]];
    }
    

    заменить 'id1234567890' на 'id' и 'ваш десятизначный номер'

    1. Это прекрасно работает на всех устройствах .

    2. Это идет прямо к магазине приложений, без перенаправлений.

    3. В порядке для всех национальных магазинов .

    4. Это правда, что вы должны перейти к использованию loadProductWithParameters, , но , если цель ссылки - обновить приложение, в котором вы находитесь: возможно, лучше использовать этот «старомодный» подход.

    ответ дан Fattie, с репутацией 20066, 14.08.2015
  • 32 рейтинг

    Apple только что анонсировала магазин приложений. ком URL.

    https: // разработчик. яблоко. ком / библиотека / ИОС / ОК / 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-адресе (например, «& amp;»)).

    Чтобы создать короткую ссылку в App Store, примените следующие правила к названию вашей компании или приложения:

    Удалить все пробелы

    Преобразовать все символы в нижний регистр

    Удалить все символы авторского права (©), товарного знака (™) и зарегистрированного знака (®)

    Заменить амперсанды ("& amp;") на "и"

    Удалить большинство знаков препинания (см. Листинг 2)

    Заменить акцентированные и другие «украшенные» символы (ü, å и т. Д. ) с их стихийным характером (u, a и т. д.) )

    Оставьте все остальные символы как есть.

    Перечисление 2 Знаки пунктуации, которые должны быть удалены.

    ! ¡ "# $% '() * +, -. /:; & Л; = & GT; ¿? @ [] ^ _ `{|} ~

    Ниже приведены некоторые примеры, демонстрирующие происходящее преобразование.

    App Store

    Примеры названий компаний

    Gameloft = & gt; http: // appstore. com / gameloft

    Activision Publishing, Inc. = & GT; http: // appstore. com / activisionpublishinginc

    Фотография Чена & amp; Software = & gt; http: // appstore. com / chensphotographyandsoftware

    Примеры названий приложений

    Окарина = & gt; http: // appstore. com / ocarina

    Где мой Перри? = & GT; http: // appstore. com / wheresmyperry

    Brain Challenge ™ = & gt; http: // appstore. com / brainchallenge

    ответ дан Tom Krones, с репутацией 5041, 14.10.2013
  • 29 рейтинг

    Этот код генерирует ссылку 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];
    
    ответ дан Tibidabo, с репутацией 19073, 1.03.2012
  • 27 рейтинг

    Просто измените «itunes» на «Фобос» в ссылке на приложение.

    http: // phobos. яблоко. ком / WebObjects / MZStore. вуо / в / viewSoftware? id = 300136119 & mt = 8

    Теперь откроет App Store напрямую

    ответ дан matt, с репутацией 1332, 11.01.2009
  • 25 рейтинг

    Иметь прямую ссылку без перенаправления:

    1. Используйте iTunes Link Maker http: // itunes. яблоко. com / linkmaker / , чтобы получить реальную прямую ссылку
    2. Заменить http:// на itms-apps://
    3. Открыть ссылку с [[UIApplication sharedApplication] openURL:url];

    Будьте осторожны, эти ссылки работают только на реальных устройствах, а не в симуляторе.

    Источник: https: // разработчик. яблоко. ком / библиотека / ИОС / # ОК / qa2008 / qa1629. HTML

    ответ дан dulgan, с репутацией 5725, 29.05.2012
  • 15 рейтинг

    Это работало для меня отлично, используя только APP ID:

     NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
    

    Число перенаправлений - НОЛЬ.

    ответ дан Almas Adilbek, с репутацией 2471, 17.07.2012
  • 12 рейтинг

    В ряде ответов предлагается использовать «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: // разработчик. яблоко. ком / библиотека / ИОС / ОК / qa1629 / _index. HTML Последнее обновление в марте 2014 года на этот ответ.

    Для приложений, поддерживающих iOS 6 и выше, Apple предлагает встроенный механизм представления магазина приложений: 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.

    ответ дан Ben Flynn, с репутацией 12130, 17.06.2014
  • 11 рейтинг

    Если вы хотите сослаться на приложения разработчика и имя разработчика содержит знаки препинания или пробелы (например, г. Девелоперская компания, ООО) сформируйте ваш URL следующим образом:

    itms-apps://itunes.com/apps/DevelopmentCompanyLLC
    

    В противном случае он возвращает «Этот запрос не может быть обработан» на iOS 4. 3. 3

    ответ дан Andrew, с репутацией 6262, 9.07.2011
  • 10 рейтинг

    Вы можете получить ссылку на определенный элемент в магазине приложений или iTunes через производителя ссылок по адресу: http: // itunes. яблоко. com / linkmaker /

    ответ дан Octavio Berlanga, с репутацией 31, 24.03.2013
  • 8 рейтинг

    Это работает и напрямую связывает в ios5

    NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
    
    ответ дан TouchMint, с репутацией 81, 7.01.2012
  • 7 рейтинг

    Это простой и короткий способ перенаправить / связать другое существующее приложение в магазине приложений.

     NSString *customURL = @"http://itunes.apple.com/app/id951386316";
    
     if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
     {
           [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
     } 
    
    ответ дан iChirag, с репутацией 1063, 9.01.2015
  • 3 рейтинг

    По крайней мере iOS 9 и выше

    • Открыть прямо в App Store

    приложение

    itms-apps://itunes.apple.com/app/[appName]/[appID]
    

    Список приложений разработчика

    itms-apps://itunes.apple.com/developer/[developerName]/[developerID]
    
    ответ дан Jakub Truhlář, с репутацией 6822, 8.03.2017
  • 3 рейтинг

    Я могу подтвердить, что если вы создаете приложение в 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];
    

    Работает угощение

    ответ дан user1641587, с репутацией 91, 17.03.2014
  • 3 рейтинг

    Создание ссылки может стать сложной проблемой при поддержке нескольких ОС и нескольких платформ. Например, WebObjects не поддерживается в iOS 7 (некоторые из них), некоторые ссылки, которые вы создадите, откроют магазин в другой стране, чем пользователь и т. Д.

    Существует библиотека с открытым исходным кодом iLink , которая может вам помочь.

    Есть преимущества этой библиотеки в том, что ссылки будут найдены и созданы во время выполнения (библиотека проверит идентификатор приложения и ОС, в которой она работает, и выяснит, какую ссылку следует создать). Лучшее в этом то, что вам не нужно ничего настраивать перед использованием, так что это безошибочно и будет работать всегда. Это также хорошо, если у вас мало целей в одном проекте, поэтому вам не нужно помнить, какой идентификатор приложения или ссылку использовать. Эта библиотека также предложит пользователю обновить приложение, если в магазине появится новая версия (она встроена, и вы отключите ее простым флагом), указывающей на страницу обновления приложения, если пользователь согласится.

    Скопируйте 2 библиотечных файла в свой проект (iLink. ч & amp; iLink. м).

    В вашем приложении делегат. м:

    #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. ч на тот же файл.

    Там есть очень хороший документ для всей библиотеки и примеры проектов для iPhone и Mac.

    ответ дан Jameson, с репутацией 56, 10.08.2014
  • 2 рейтинг

    Согласно , последний документ Apple , itms-apps: или itms: не будет работать. Вам нужно использовать

    appStoreLink = "https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"  
    

    или

    SKStoreProductViewController 
    
    ответ дан Mihir Oza, с репутацией 1612, 19.12.2017
  • 2 рейтинг

    Для Xcode 9. 1 и Свифт 4:

    1. Импорт 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)
    }
    
    1. Как использовать:
    openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")
    

    Примечание:

    Очень важно ввести точный идентификатор вашего приложения. Потому что это причина ошибки (не показывать журнал ошибок, но из-за этого ничего не работает)

    ответ дан xhinoda, с репутацией 529, 21.11.2017
  • 1 рейтинг

    Если у вас есть идентификатор магазина приложений, лучше всего его использовать. Особенно, если вы в будущем можете изменить название приложения.

    http://itunes.apple.com/app/id378458261
    

    Если у вас нет идентификатора магазина приложений, вы можете создать URL-адрес на основе этой документации https: // developer. яблоко. ком / библиотека / ИОС / ОК / 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);
    }
    
    ответ дан hfossli, с репутацией 17505, 20.03.2014
  • 0 рейтинг

    Попробуйте это

    http: // itunes. яблоко. ком / поиск? id = "ваш идентификатор приложения здесь" вернуть JSON. Из этого найдите ключ « trackViewUrl », и значением будет нужный URL-адрес. используйте этот URL (просто замените https:// на itms-apps://). Это работает просто отлично.

    Например, если ваш идентификатор приложения xyz, перейдите по этой ссылке http: // itunes. яблоко. ком / поиск? 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]];
    

    Спасибо

    ответ дан Tunvir Rahman Tusher, с репутацией 3833, 26.12.2013