Jak połączyć się z aplikacjami w app store

Tworzę darmową wersję gry na iPhone ' a. Chcę mieć przycisk wewnątrz darmowej wersji, który przenosi ludzi do płatnej wersji w app store. Jeśli używam standardowego linku

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

IPhone otwiera najpierw Safari, a następnie app store. Używałem innych aplikacji, które otwierają app store bezpośrednio, więc wiem, że jest to możliwe.

Jakieś pomysły? Co To jest schemat URL do app store?

Author: matt, 2009-01-11

25 answers

Data edycji: 2016-02-02

Począwszy od iOS 6 wprowadzono klasę SKStoreProductViewController . Możesz połączyć aplikację bez opuszczania jej. Fragment kodu w Swift 3.x / 2.x i Objective-C jest tutaj .

A skstoreproductviewcontroller Obiekt prezentuje sklep, który umożliwia użytkownik do zakupu innych multimediów ze sklepu App Store. Na przykład Twoja aplikacja może wyświetlić sklep, aby umożliwić użytkownikowi kup inną aplikację.


Z wiadomości i zapowiedzi dla programistów Apple.

Prowadź klientów bezpośrednio do swojej aplikacji w App Store z linkami iTunes Dzięki linkom iTunes możesz podać swoje klienci z łatwym dostępem Twoje aplikacje bezpośrednio w App Store z twojej strony lub marketingu kampanie. Tworzenie łącza iTunes jest proste i można je bezpośrednio klientów do jednej aplikacji, wszystkie swoich aplikacji, lub do konkretnej aplikacji z Twój Podana Nazwa firmy.

Aby wysłać klientów do określonego zastosowanie: http://itunes.com/apps/appname

Aby wysłać klientów do listy posiadanych aplikacji w App Store: http://itunes.com/apps/developername

Aby wysłać klientów do określonej aplikacji z nazwą Twojej firmy zawartą w URL: http://itunes.com/apps/developername/appname


Dodatkowe uwagi:

Możesz zastąpić http:// przez itms:// lub itms-apps://, aby uniknąć przekierowań.

Należy pamiętać, że itms:// wyśle użytkownika do iTunes store i itms-apps:// z wyślij je do App Store!

Aby uzyskać informacje na temat nazewnictwa, zobacz Apple QA1633:

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

Edycja (stan na Styczeń 2015):

Itunes.com/apps linki powinny być aktualizowane do appstore.com/apps. Zobacz QA1633 powyżej, który został zaktualizowany. Nowy QA1629 sugeruje te kroki i kod do uruchomienia sklepu z aplikacji:

  1. Uruchom iTunes na swoim komputerze.
  2. wyszukaj element, do którego chcesz link.
  3. Kliknij prawym przyciskiem myszy lub kliknij przycisk control na nazwę elementu w iTunes, a następnie wybierz "Skopiuj adres URL sklepu iTunes" z menu podręcznego.
  4. w aplikacji Utwórz obiekt NSURL z skopiowanym adresem URL iTunes, a następnie przekaż ten obiekt do metody UIApplication s openURL:, aby otworzyć element w aplikacji Sklep.

Przykładowy kod:

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.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-12 11:56:47

Jeśli chcesz otworzyć aplikację bezpośrednio w App Store, użyj:

Itms-apps://...

W ten sposób otworzy bezpośrednio aplikację App Store na urządzeniu, zamiast najpierw przejść do iTunes, a następnie tylko otworzyć sklep z aplikacjami (gdy używasz tylko itms://) Mam nadzieję, że to pomoże.

EDYCJA: KWIECIEŃ, 2017. itms-apps: / / faktycznie działa ponownie w iOS10. Przetestowałem to.

EDYCJA: KWIECIEŃ 2013. To już nie działa w iOS5 i nowszych. Wystarczy użyć

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

I są koniec z przekierowaniami.

 365
Author: GeneCode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 06:42:59

Począwszy od iOS 6 właściwy sposób, aby to zrobić za pomocą klasy SKStoreProductViewController .

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

Możesz uzyskać identyfikator itunes aplikacji w następujący sposób: (zamiast statycznego)

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

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

Możesz uzyskać kAppITunesItemIdentifier (identyfikator itunes aplikacji) jak to: (zamiast statycznego)

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,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-30 05:41:25

Apple właśnie ogłosiło appstore.com URL.

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

[[0]} istnieją trzy rodzaje krótkich linków do App Store, w dwóch formach, jeden dla aplikacji iOS, drugi dla aplikacji Mac:

Nazwa Firmy

IOS: http://appstore.com/ na przykład http://appstore.com/apple

Mac: http://appstore.com/mac / na przykład, http://appstore.com/mac/apple

Nazwa Aplikacji

IOS: http://appstore.com/ na przykład http://appstore.com/keynote

Mac: http://appstore.com/mac/ na przykład http://appstore.com/mac/keynote

App by Company

IOS: http://appstore.com / / na przykład http://appstore.com/apple/keynote

Mac: http://appstore.com/mac / / na przykład, http://appstore.com/mac/apple/keynote

Większość firm i aplikacji ma Canonical App Store Krótki Link. Ten kanoniczny adres URL jest tworzony przez zmianę lub usunięcie pewnych znaków (z których wiele jest nielegalnych lub ma specjalne znaczenie w adresie URL (na przykład "&")).

Aby utworzyć krótki Link do App Store, zastosuj następujące zasady do nazwy firmy lub aplikacji:]}

Usuń wszystkie spacje

Konwertuj wszystkie znaki na małe litery

Usuń wszystkie symbole praw autorskich ( © ), znaków towarowych ( ™ ) i zarejestrowanych znaków towarowych ( ® )

Zamień ampersands ("&") na " i "

Usuń większość interpunkcji (Zobacz Listing 2 dla zestawu)

Zastąp znaki akcentowane i inne "zdobione"(ü, å, itp.) z ich żywiołowym charakterem (u, a itp.)

Pozostaw wszystkie pozostałe znaki tak, jak jest.

Lista 2 znaków interpunkcyjnych, które należy usunąć.

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

Poniżej znajdują się kilka przykładów, aby zademonstrować konwersję, która ma miejsce.

App Store

Przykłady nazwy firmy

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

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

Fotografia i oprogramowanie = > http://appstore.com/chensphotographyandsoftware

Przykłady nazw aplikacji

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

Gdzie mój Perry? = > http://appstore.com/wheresmyperry

Brain Challenge™ = > http://appstore.com/brainchallenge

 41
Author: Dev01,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-14 17:50:18

Na lato 2015 r ...

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

Zastąp 'id1234567890' przez ' id ' i 'twój dziesięciocyfrowy numer'

  1. To działa doskonale na wszystkich urządzeniach .

  2. [[4]}to idzie prosto do app store, bez przekierowań.
  3. Jest OK dla wszystkich krajowych sklepów.

  4. To prawda, że powinieneś przejść do używania loadProductWithParameters, ale jeśli celem linku jest aktualizacja aplikacji, w której się znajdujesz of: prawdopodobnie lepiej jest użyć tego "staromodnego" podejścia.

 41
Author: Joe Blow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Aby mieć bezpośredni link bez przekierowania:

  1. Użyj iTunes link maker http://itunes.apple.com/linkmaker/ aby uzyskać prawdziwy bezpośredni link
  2. Zastąp http:// na itms-apps://
  3. Otwórz link za pomocą [[UIApplication sharedApplication] openURL:url];

Uważaj, te linki działają tylko na rzeczywistych urządzeniach, Nie w symulatorze.

Źródło: https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html

 30
Author: dulgan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 15:08:34

Ten kod generuje łącze App Store na iOS]}

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

Zastąp itms-apps http na Macu:

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

Otwórz adres URL na iOS:

[[UIApplication sharedApplication] openURL:appStoreURL];

Mac:

[[NSWorkspace sharedWorkspace] openURL:appStoreURL];
 30
Author: Tibidabo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 15:10:26

Po prostu zmień "itunes" na "phobos" w linku aplikacji.

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

Teraz otworzy bezpośrednio App Store

 28
Author: matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-11 23:41:54

To działało dla mnie doskonale używając tylko APP ID:

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

Liczba przekierowań wynosi ZERO.

 18
Author: Almas Adilbek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-16 06:59:48

Wiele odpowiedzi sugeruje używanie "itms" lub "itms-apps", ale ta praktyka nie jest szczególnie zalecana przez Apple. Oferują tylko następujący sposób otwarcia App Store:

Listing 1 uruchamianie App Store z aplikacji na iOS

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

Zobacz https://developer.apple.com/library/ios/qa/qa1629/_index.html Ostatnia aktualizacja marzec, 2014 od tej odpowiedzi.

[[3]}dla aplikacji obsługujących iOS 6 i nowsze, Apple oferuje mechanizm in-app dla prezentacja 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
}];

Zauważ, że w systemie iOS6 blok zakończenia może nie być wywołany, jeśli występują błędy. Wygląda na to, że jest to błąd, który został rozwiązany w systemie iOS 7.

 13
Author: Ben Flynn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 21:29:28

Jeśli chcesz połączyć się z aplikacjami dewelopera, a nazwa dewelopera ma znaki interpunkcyjne lub spacje (np.]}

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

W przeciwnym razie zwraca "to żądanie nie może być przetworzone" na iOS 4.3.3

 12
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-09 00:10:43

Możesz uzyskać link do określonego artykułu w app store lub iTunes za pośrednictwem kreatora linków na: http://itunes.apple.com/linkmaker/

 11
Author: Octavio Berlanga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 15:08:48

To działa i bezpośrednio łączy w ios5

NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
 9
Author: TouchMint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 15:06:51

Jest to prosty i krótki sposób przekierowania / linkowania innych istniejących aplikacji w 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,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-09 06:09:54

Dla Xcode 9.1 i Swift 4:

  1. Import StoreKit:
import StoreKit

2.Conform the protocol

SKStoreProductViewControllerDelegate

3.Implementacja protokołu

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. Jak używać:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")

Uwaga:

Bardzo ważne jest, aby wprowadzić dokładny identyfikator aplikacji. Ponieważ ta przyczyna błędu (nie pokazuje dziennika błędów, ale nic nie działa dobrze z tego powodu)

 6
Author: xhinoda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-17 14:29:09

Wszystkie odpowiedzi są nieaktualne i nie działają; użyj poniższej metody.

Wszystkie aplikacje programisty:
itms-apps://apps.apple.com/developer/developer-name/developerId

Pojedyncza aplikacja:
itms-apps://itunes.apple.com/app/appId

 6
Author: Karen Karapetyan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-16 19:37:40

Mogę potwierdzić, że jeśli utworzysz aplikację w iTunes connect, otrzymasz identyfikator aplikacji przed jej przesłaniem.

Dlatego..

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

Działa smakołyk

 5
Author: user1641587,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-17 23:32:21

Tworzenie łącza może stać się złożonym problemem podczas obsługi wielu systemów operacyjnych i wielu platform. Na przykład WebObjects nie jest obsługiwany na iOS 7( niektóre z nich), niektóre linki, które utworzysz, otworzyłyby inny sklep Krajowy, a następnie sklep użytkownika itp.

Istnieje biblioteka open source o nazwie iLink , która może Ci pomóc.

Zaletą tej biblioteki jest to, że linki zostaną znalezione i utworzone w czasie wykonywania (biblioteka sprawdzi ID aplikacji i system operacyjny, którym jest uruchomiony i zorientowałby się, jaki link powinien zostać utworzony). Najlepszym punktem jest to, że nie musisz konfigurować prawie niczego przed użyciem, aby było to wolne od błędów i działało zawsze. Jest to świetne również, jeśli masz kilka celów w tym samym projekcie, więc nie musisz pamiętać, który identyfikator aplikacji lub link użyć. Ta biblioteka również poprosi użytkownika, aby uaktualnić aplikację, jeśli istnieje nowa wersja w sklepie (to jest wbudowany i wyłączyć to za pomocą prostej flagi) bezpośrednio wskazując na Uaktualnij stronę aplikacji, Jeśli użytkownik wyrazi na to zgodę.

Skopiuj 2 pliki biblioteki do swojego projektu (iLink.h & iLink.m).

Na twoim 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.
}

I w miejscu, w którym chcesz otworzyć stronę oceny, na przykład użyj:

[[iLink sharedInstance] iLinkOpenAppPageInAppStoreWithAppleID: YOUR_PAID_APP_APPLE_ID]; // You should find YOUR_PAID_APP_APPLE_ID from iTunes Connect 
Nie zapomnij zaimportować iLink.h W tym samym pliku.

Jest tam bardzo dobry doc dla całej biblioteki i przykładowe projekty dla iPhone i dla Mac.

 4
Author: Jameson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-10 09:27:11

Co najmniej iOS 9 i powyżej

  • Otwórz bezpośrednio w App Store

Aplikacja

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

Lista aplikacji programisty

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]
 4
Author: Jakub Truhlář,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-08 17:18:32

Według najnowszego dokumentu Apple Musisz użyć

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

Lub

SKStoreProductViewController 
 4
Author: Mihir Oza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-13 11:09:27

Pomimo tego, że jest tu mnóstwo odpowiedzi, żadna z sugestii dotyczących łączenia się z aplikacjami deweloperów nie wydaje się już działać.

Kiedy ostatnio odwiedziłem, udało mi się uruchomić go przy użyciu formatu:

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

To już nie działa, ale usunięcie nazwy dewelopera działa:

itms-apps://itunes.apple.com/developer/id123456789
 4
Author: Leon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-30 12:24:02

Myślę, że Apple podało nowy link do aplikacji link: https://apps.apple.com/app/id1445530088 lub https://apps.apple.com/app/ {your_app_id}

 4
Author: Milon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-16 04:54:45

Jeśli masz identyfikator app store, najlepiej go używać. Zwłaszcza jeśli w przyszłości może zmienić nazwę aplikacji.

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

Jeśli nie masz identyfikatora tha app store, możesz utworzyć adres url na podstawie tej dokumentacji 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;
}

Przechodzi ten test

- (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,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-20 11:09:44

Otworzy bezpośrednio App Store

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

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
 1
Author: Biswajit Banik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-30 07:42:34

Try this way

Http://itunes.apple.com/lookup?id="your app ID here" zwraca json.Następnie znajdź klucz " trackViewUrl" i wartość jest żądanym adresem url. użyj tego adresu url (po prostu zamień https:// na itms-apps://).To działa dobrze.

Na przykład, jeśli twój identyfikator aplikacji to xyz, przejdź do tego linku http://itunes.apple.com/lookup?id=xyz

Następnie znajdź adres url klucza " trackViewUrl ".To jest adres URL Twojej aplikacji w app store i aby użyć tego adresu w Xcode spróbuj this

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

Dzięki

 0
Author: Tunvir Rahman Tusher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-26 09:56:14