Como ligar às aplicações na loja de aplicações

estou a criar uma versão gratuita do meu jogo para iPhone. Eu quero ter um botão dentro da versão gratuita que leva as pessoas para a versão paga na app store. Se eu usar uma ligação padrão

Http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

o iPhone Abre o Safari primeiro, e depois a app store. Eu usei outros aplicativos que abrem a app store diretamente, então eu sei que é possível.

Alguma ideia? Qual é o URL Esquema para a app store?

Author: matt, 2009-01-11

25 answers

Editado em 2016-02-02

A partir de iOS 6 foi introduzida a classe Skstore Productviewcontroller. Você pode ligar um aplicativo sem deixar o seu aplicativo. Excerto de código em Swift 3.x / 2.x e Objective-C is here .

Ao objecto Skstore Productviewcontroller apresenta uma loja que permite ao Usuário para comprar outros meios de comunicação da App Store. Por exemplo, a sua aplicação poderá mostrar a loja para permitir ao utilizador compra outra aplicação.


From News and Announcement For Apple Developers .

Dirija os clientes directamente para a sua aplicação na App Store com Links do iTunes Com iTunes links você pode fornecer o seu clientes com uma maneira fácil de acessar as suas aplicações na Loja de aplicações directamente a partir do seu site ou marketing campanha. Criar um link do iTunes é simples e pode ser feito para dirigir clientes para um único aplicativo, tudo os seus aplicativos, ou para um aplicativo específico com sua nome da empresa indicado.

Enviar clientes para um determinado aplicacao: http://itunes.com/apps/appname

Para enviar clientes para uma lista de aplicativos que você tem na App Store: http://itunes.com/apps/developername

Para enviar clientes para um aplicativo específico com o nome da sua empresa incluído no ENDERECO: http://itunes.com/apps/developername/appname

Notas complementares:

Pode substituir http:// por itms:// ou itms-apps:// para evitar redirecções.

Por favor, note que itms:// irá enviar o utilizador para a iTunes store e itms-apps:// Com enviar para a App Store!

Para informações sobre a nomeação, ver Apple QA1633:

Https://developer.apple.com/library/content/qa/qa1633/_index.html.

Editar (a partir de janeiro 2015):

Itunes.com/apps links devem ser atualizados para appstore.com/apps ver QA1633 acima, que foi actualizado. Nova QA1629 sugere estes passos e o código para lançar a loja a partir de um aplicativo:

    Lança o iTunes no teu computador.
  1. procura o item para o qual queres ligar.
  2. Clique com o botão direito ou controle-clique no nome do item no iTunes, em seguida, escolha "Copiar o URL do iTunes Store" do menu de contexto.
  3. na sua aplicação, crie um objecto NSURL com o URL do iTunes copiado, depois passe este objecto para UIApplication' s openURL: método para abrir o seu item na aplicação Armazenar.

Código da amostra:

NSString *iTunesLink = @"itms://itunes.apple.com/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

IOS10+:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink] options:@{} completionHandler:nil];

Swift 4.2

   let urlStr = "itms-apps://itunes.apple.com/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)!)
    }
 795
Author: Nathan S., 2020-12-12 11:56:47

Se quiser abrir uma aplicação directamente no App Store, deve usar:

Itms-apps://...

Desta forma, irá abrir directamente a aplicação App Store no dispositivo, em vez de ir ao iTunes primeiro, e só depois abrir a App Store (quando usar apenas itms://)

Espero que isso ajude.

EDIT: ABR, 2017. itms-apps: / / realmente funciona novamente no iOS10. Eu testei-o.

EDITAR: ABR, 2013. Isto não funciona mais em iOS5 e acima. Basta usar

https://itunes.apple.com/app/id378458261
E ali não há mais redirecções.
 365
Author: GeneCode, 2017-04-24 06:42:59
A partir do iOS 6, é a forma correcta de o fazer, utilizando a classe Skstore Productviewcontroller .

Swift 5.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)
        }
    }
}
private func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier("1234567")

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")

Você pode obter o identificador do item itunes da aplicação como este: (em vez de um estático)

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")

Objectivo-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];
}

Você pode obter {[[6]} (app é item itunes identificador) assim: (em vez de um estático)

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]];
 53
Author: Ramis, 2020-05-30 05:41:25
A Apple acabou de anunciar o appstore.com urls.

Https://developer.apple.com/library/ios/qa/qa1633/_index.html

Existem três tipos de ligações curtas de App Store, em duas formas, uma para aplicações iOS, outra para aplicações Mac:

Nome Da Empresa

IOS: http://appstore.com/ por exemplo, http://appstore.com/apple

Mac: http://appstore.com/mac/ por exemplo, http://appstore.com/mac/apple

Nome Da Aplicação

IOS: http://appstore.com/ por exemplo, http://appstore.com/keynote

Mac: http://appstore.com/mac/ por exemplo, http://appstore.com/mac/keynote

App por Empresa

IOS: http://appstore.com// por exemplo, http://appstore.com/apple/keynote

Mac: http://appstore.com/mac/ / por exemplo, http://appstore.com/mac/apple/keynote

A maioria das empresas e aplicações têm um Link de armazenamento de App canónico. Este URL canônico é criado alterando ou removendo certos caracteres (muitos dos quais são ilegais ou têm significado especial em um URL (por exemplo, "&")).

Para criar uma ligação curta App Store, Aplique as seguintes regras à sua empresa ou nome da aplicação:

Remover todos os espaços em branco

Converter todos os caracteres para minúsculas

Remover todos os símbolos dos direitos de autor ( © ), da marca ( ™ ) e da marca registada ( ® )

Substituir os amplificadores ( " & ") por " e "

Remover A maior parte da pontuação (Ver Lista 2 para o conjunto)

Substituir caracteres acentuados e outros "decorados" (ü, å, etc.) com seu caráter elementar (u, a, etc.)

Deixe todos os outros personagens como estão.

Listando 2 caracteres de pontuação que devem ser removidos.

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

Abaixo estão alguns exemplos para demonstrar a conversão que ocorre.

App Store

Nome da empresa exemplos

Gameloft => http://appstore.com/gameloft

Activision Publishing, Inc. = > http://appstore.com/activisionpublishinginc

Fotografia e Software de Chen = > http://appstore.com/chensphotographyandsoftware

Exemplos de nomes de aplicações

Ocarina => http://appstore.com/ocarina

Onde está o meu Perry? = > http://appstore.com/wheresmyperry [[1]}Brain Challenge™ = > http://appstore.com/brainchallenge
 41
Author: Dev01, 2013-10-14 17:50:18

Para o verão de 2015 em diante ...

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

Substituir "id1234567890" por " id " e "o seu número de dez algarismos"

  1. Isto funciona perfeitamente em todos os dispositivos.

  2. Vai directamente para a app store, sem redirecções.
  3. Está tudo bem para todas as lojas nacionais.

  4. É verdade que deves passar a usar loadProductWithParameters, Mas Se o propósito do link é atualizar o aplicativo você é realmente dentro de: é possivelmente melhor usar esta abordagem "antiquada".

 41
Author: Joe Blow, 2020-06-20 09:12:55

Ter uma ligação directa sem redireccionamento:

  1. Use o fabricante de ligações do iTunes http://itunes.apple.com/linkmaker/ para obter a ligação directa real
  2. substituir o http:// por itms-apps://
  3. Abra a ligação com [[UIApplication sharedApplication] openURL:url];
Cuidado, essas ligações só funcionam em dispositivos reais, não em simulador.

Fonte : https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html

 30
Author: dulgan, 2014-02-09 15:08:34

Este código gera a Ligação App Store no iOS

NSString *appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary]   objectForKey:@"CFBundleName"]];
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];

Substitua itms-apps por http no Mac:

NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"http:/itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]]; 

Abrir o URL no iOS:

[[UIApplication sharedApplication] openURL:appStoreURL];

Mac:

[[NSWorkspace sharedWorkspace] openURL:appStoreURL];
 30
Author: Tibidabo, 2014-02-09 15:10:26
Basta mudar o itunes para Fobos no link da aplicação.

Http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

Agora vai abrir o App Store directamente
 28
Author: matt, 2009-01-11 23:41:54
Isto funcionou perfeitamente para mim, usando apenas o ID da aplicação.:
 NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

O número de redirecionamentos é ZERO.

 18
Author: Almas Adilbek, 2013-01-16 06:59:48

Algumas respostas sugerem a utilização de 'itms ' ou' itms-apps', mas esta prática não é especificamente recomendada pela Apple. Eles só oferecem a seguinte maneira de abrir a App Store:

Lista 1 lançamento da App Store a partir de uma aplicação iOS

NSString *iTunesLink = @"https://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

Ver https://developer.apple.com/library/ios/qa/qa1629/_index.html última actualização de Março de 2014 a partir desta resposta.

Para aplicações que suportam iOS 6 ou mais, a Apple oferece um mecanismo in-app para apresentar o 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
}];

Note que no iOS6, o bloco de completação pode não ser chamado se houver erros. Este parece ser um bug que foi resolvido no iOS 7.

 13
Author: Ben Flynn, 2014-06-17 21:29:28

Se quiser ligar-se às aplicações de um programador e o nome do programador tiver pontuação ou espaços (por exemplo, Empresa de desenvolvimento, LLC), forme o seu URL como este:

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

Caso contrário devolve "este pedido não pode ser processado" em iOS 4.3.3

 12
Author: Andrew, 2011-07-09 00:10:43

Você pode obter um link para um item específico na app store ou iTunes através do fabricante de link em: http://itunes.apple.com/linkmaker/

 11
Author: Octavio Berlanga, 2014-02-09 15:08:48
Isto está a funcionar e a ligar-se directamente ao ios5
NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
 9
Author: TouchMint, 2014-02-09 15:06:51

Esta é uma forma simples e curta de redireccionar/ligar outra aplicação existente no app store.

 NSString *customURL = @"http://itunes.apple.com/app/id951386316";

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
 {
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
 } 
 8
Author: iChirag, 2015-01-09 06:09:54

Para Xcode 9.1 e Swift 4:

  1. Import StoreKit:
import StoreKit

2.Em conformidade com o protocolo

SKStoreProductViewControllerDelegate

3.Aplicar o protocolo

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. Como Utilizar:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")

Nota:

É muito importante inserir o ID exato do seu aplicativo. Porque esta causa erro (não mostrar o registro de erro, mas nada funciona bem por causa disso)

 6
Author: xhinoda, 2018-12-17 14:29:09

Todas as respostas estão desactualizadas e não funcionam; use o método abaixo.

Todas as aplicações de um programador:
itms-apps://apps.apple.com/developer/developer-name/developerId

Aplicação única:
itms-apps://itunes.apple.com/app/appId

 6
Author: Karen Karapetyan, 2020-01-16 19:37:40

Posso confirmar que se criar uma aplicação no iTunes connect, terá o seu ID da aplicação antes de o submeter.

Portanto..

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];

Funciona como um tratamento

 5
Author: user1641587, 2014-03-17 23:32:21
Criar uma ligação pode tornar-se um problema complexo ao suportar múltiplos SO e múltiplas plataformas. Por exemplo, os Webbojets não são suportados no iOS 7 (alguns deles), alguns links que você cria abririam outra loja do país, em seguida, do Usuário etc.

Existe uma biblioteca de código aberto chamada iLink que pode ajudar-te.

Existem vantagens desta Biblioteca é que as ligações seriam encontradas e criadas no tempo de execução (a biblioteca iria verificar o ID da aplicação e o SO ele está funcionando e iria descobrir que link deve ser criado). O melhor ponto nisto é que você não precisa configurar quase nada antes de usá-lo para que seja livre de erros e funcionaria sempre. Isso é ótimo também se você tem poucos alvos no mesmo projeto para que você não tem que se lembrar que id app ou link para usar. Esta biblioteca também pediria ao utilizador para actualizar a aplicação se houvesse uma nova versão na loja (esta é incorporada e você desliga - a com uma bandeira simples) que apontasse directamente para a página de atualização para o aplicativo, se o usuário concordar.

Copie os 2 ficheiros da biblioteca para o seu projecto (iLink.h & iLink.m).

No seu appDelegate.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.
}

E no local onde quer abrir a página de classificação, por exemplo, use apenas:

[[iLink sharedInstance] iLinkOpenAppPageInAppStoreWithAppleID: YOUR_PAID_APP_APPLE_ID]; // You should find YOUR_PAID_APP_APPLE_ID from iTunes Connect 
Não te esqueças de importar a iLink.h no mesmo ficheiro.

Há um doc muito bom para toda a biblioteca lá e um exemplo de projetos para iPhone e para Mac.

 4
Author: Jameson, 2014-08-10 09:27:11

Pelo menos iOS 9 ou superior

  • abrir directamente no App Store

Uma aplicação

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

Lista das aplicações dos programadores

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]
 4
Author: Jakub Truhlář, 2017-03-08 17:18:32

De acordo com o último documento da Apple Tem de utilizar

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

Ou

SKStoreProductViewController 
 4
Author: Mihir Oza, 2018-11-13 11:09:27

Apesar de haver muitas respostas aqui, nenhuma das sugestões para ligar aos aplicativos de desenvolvedores parece funcionar mais.

Quando a visitei pela última vez, consegui pô-la a funcionar com o formato:

itms-apps://itunes.apple.com/developer/developer-name/id123456789

Isto já não funciona, mas remover o nome do programador faz:

itms-apps://itunes.apple.com/developer/id123456789
 4
Author: Leon, 2018-11-30 12:24:02

Acho que a Apple forneceu um novo link para a ligação da aplicação.: https://apps.apple.com/app/id1445530088 ou https://apps.apple.com/app/ {your_app_id}

 4
Author: Milon, 2020-07-16 04:54:45

Se TEM o ID da app store, é melhor usá-lo. Especialmente se você no futuro pode mudar o nome da aplicação.

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

Se não tiver o id da app store, poderá criar um url baseado nesta documentação 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;
}

Passa neste teste

- (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);
}
 3
Author: hfossli, 2014-03-20 11:09:44

Abrirá o App Store directamente

NSString *iTunesLink = @"itms-apps://itunes.apple.com/app/ebl- 
skybanking/id1171655193?mt=8";

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
 1
Author: Biswajit Banik, 2019-07-30 07:42:34

Tenta por aqui

Http://itunes.apple.com/lookup?id" a tua identificação aqui " devolve o json.A partir disto, encontre a chave " trackViewUrl " e o valor é o url desejado. use este url(basta substituir https:// por itms-apps://).Isto funciona muito bem.

Por exemplo, se o seu ID da aplicação for xyz, vá para esta ligação http://itunes.apple.com/lookup?id=xyz

Depois encontra o url da chave " trackViewUrl ".Este é o url para o seu aplicativo na app store e para usar este url em Xcode tente este

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]];
Obrigado.
 0
Author: Tunvir Rahman Tusher, 2013-12-26 09:56:14