How to Link to Apps on the App Store

How to Link to Apps on the App Store

6 June 2024 Stephan Petzl Leave a comment Tech-Help

When developing an iOS application, you may want to include a button that directs users to your other apps on the App Store. This guide will show you the correct way to create these links, ensuring they open directly in the App Store without unnecessary redirects.

Using SKStoreProductViewController

Starting from iOS 6, Apple introduced the SKStoreProductViewController class, which allows you to present the App Store directly within your app. This method ensures a seamless user experience by keeping users within your app while they browse and purchase other apps.

Implementation in Swift

Here’s how you can implement SKStoreProductViewController in Swift:

import StoreKit

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [SKStoreProductParameterITunesItemIdentifier: identifier]
    storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) in
        if loaded {
            self?.present(storeViewController, animated: true, completion: nil)
        }
    }
}

func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}

// Usage:
openStoreProductWithiTunesItemIdentifier(identifier: "1234567")

Implementation in Objective-C

If you are using Objective-C, the implementation would look like this:

#import 

- (void)openStoreProductWithiTunesItemIdentifier:(NSString *)identifier {
    SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
    storeViewController.delegate = self;

    NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier: identifier };
    [storeViewController loadProductWithParameters:parameters completionBlock:^(BOOL result, NSError *error) {
        if (result) {
            [self presentViewController:storeViewController animated:YES completion:nil];
        }
    }];
}

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [viewController dismissViewControllerAnimated:YES completion:nil];
}

// Usage:
[self openStoreProductWithiTunesItemIdentifier:@"1234567"];

Direct URL Linking

If you prefer a simpler method, you can use direct URL links. These links will open the App Store directly from your app without any redirects.

Using itms-apps URLs

To create a direct link, replace http:// with itms-apps:// in your App Store URL:

NSString *iTunesLink = @"itms-apps://itunes.apple.com/app/id1234567890";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

Best Practices

Always ensure you use the correct App Store ID for your app. Avoid using deprecated methods and stay updated with Apple’s latest guidelines. For more information, you can refer to Apple’s documentation on App Store Links.

Additional Resources

Streamline Your Testing with Repeato

While linking to your apps in the App Store is important, ensuring those apps are well-tested is even more critical. This is where Repeato comes in. Repeato is a no-code test automation tool for iOS and Android that lets you create, run, and maintain automated tests quickly and efficiently. By leveraging computer vision and AI, Repeato allows developers to focus on creating great products while handling the intricacies of test automation. This tool is especially useful for mobile developers, as it enables non-technical colleagues or QA teams to take on the task of test automation, thereby streamlining the development process.

For more information on how Repeato can enhance your development workflow, visit our Getting Started page.

Like this article? there’s more where that came from!