--- title: "Getting Started - iOS" slug: "getting-started-ios-1" updated: 2026-10-30T17:32:06Z published: 2026-10-30T17:32:06Z canonical: "ignite.ticketmaster.com/getting-started-ios-1" --- > ## Documentation Index > Fetch the complete documentation index at: https://ignite.ticketmaster.com/llms.txt > Use this file to discover all available pages before exploring further. # Getting Started - iOS ## Getting Started with Tickets SDK for iOS This guide will walk you through integrating the Ticketmaster Tickets SDK into your iOS application. By the end of this guide, you'll have the SDK installed and displaying tickets in your app. ## Prerequisites Before you begin, ensure you have: - **Xcode 26.2+** (for SDK version 3.17.0+) - > [!WARNING] > Xcode 27 currently not supported > > Xcode 27 is planned to be supported in an upcoming SDK release. - **iOS 17+** deployment target - **Liquid Glass** is disabled in your app - > [!WARNING] > Liquid Glass is currently not supported > > Please disable Liquid Glass by setting UIDesignRequiresCompatibility to YES in your Xcode project settings [https://developer.apple.com/documentation/bundleresources/information-property-list/uidesignrequirescompatibility](https://developer.apple.com/documentation/bundleresources/information-property-list/uidesignrequirescompatibility) - **Swift 6.2.3+** - **Ticketmaster API Key** - Get yours from [Ticketmaster Developer Portal](https://developer.ticketmaster.com/explore/) - **Apple Developer Account** - Required for code signing --- ## What You'll Build In this guide, you'll: 1. Install the Tickets SDK frameworks 2. Configure Authentication SDK (required dependency) 3. Configure Tickets SDK 4. Display the tickets view in your app 5. Verify your integration **Time to complete:** 15-20 minutes --- ## Step 1: Install the SDK The Tickets SDK consists of three frameworks that work together: - **TicketmasterTickets** - Main Tickets SDK - **TicketmasterSecureEntry** - Secure barcode rendering (SafeTix, QR codes, PDF417) - **TicketmasterSwiftProtobuf** - Protobuf support for encryption ### Installation via Swift Package Manager (Recommended) Swift Package Manager (SPM) is the easiest way to integrate the SDK and keep it up to date. #### 1.1 Add Package Dependency 1. In Xcode, select **File > Add Package Dependencies** 2. Enter the repository URL: ```plaintext https://github.com/ticketmaster/iOS-TicketmasterSDK ``` 3. Select the version rule: - **Recommended:** "Up to Next Major Version" starting from `1.19.0` (latest stable) - Or specify an exact version from the [Releases page](https://github.com/ticketmaster/iOS-TicketmasterSDK/releases) 4. Click **Add Package** #### 1.2 Select Frameworks When prompted, add these frameworks to your app target: - ✅ `TicketmasterAuthentication` (required) - ✅ `TicketmasterFoundation` (required) - ✅ `TicketmasterTickets` (required) - ✅ `TicketmasterSecureEntry` (required) - ✅ `TicketmasterSwiftProtobuf` (required) > [!NOTE] > **Note:** You may also see TicketmasterDiscovery, TicketmasterPrePurchase, and TicketmasterPurchase. These are optional and only needed if you're implementing the full Retail SDK. ### Alternative: Manual XCFramework Installation If you prefer not to use SPM: 1. Download the latest release from [GitHub Releases](https://github.com/ticketmaster/iOS-TicketmasterSDK/releases) 2. Extract the `.xcframework` files 3. Drag them into your Xcode project 4. Ensure **Embed & Sign** is selected in your target's **Frameworks, Libraries, and Embedded Content** ### **iOS framework dependencies reference** The Ticketmaster SDK is modular — include only the frameworks for the features you use. | **SDK product** | **Required frameworks** | | --- | --- | | **Tickets SDK** (post-purchase and event entry) | TicketmasterAuthentication, TicketmasterFoundation, TicketmasterSwiftProtobuf, TicketmasterSecureEntry, TicketmasterTickets | | **Purchase SDK** (event purchasing) | TicketmasterAuthentication, TicketmasterFoundation, TicketmasterDiscoveryAPI, TicketmasterPurchase | | **PrePurchase SDK**(webpage-based discovery) | TicketmasterAuthentication, TicketmasterFoundation, TicketmasterDiscoveryAPI, TicketmasterPrePurchase | | **Discovery API** (API-based discovery) | TicketmasterFoundation, TicketmasterDiscoveryAPI | | **Authentication SDK** (standalone) | TicketmasterFoundation | > [!NOTE] > **Note:** For a standard Tickets SDK integration (this guide), you need the five frameworks listed in Step 1.2 above. The Purchase, PrePurchase, and Discovery SDK products are part of the Retail SDK and are optional. ![sdk_dependancies](https://cdn.document360.io/995f0bfa-740b-4247-b341-fde1e5326a96/Images/Documentation/sdk_dependancies.jpg) --- ## Step 2: Import the Frameworks In the file where you'll configure the SDK (typically your App or AppDelegate or a configuration manager), import the required frameworks: ```swift import SwiftUI // or import UIKit import TicketmasterFoundation import TicketmasterAuthentication import TicketmasterTickets ``` --- ## Step 3: Configure Authentication SDK The Tickets SDK depends on Authentication SDK for user login and API access. You must configure Authentication SDK **before** configuring Tickets SDK. ### 3.1 Create Your Configuration Settings ```swift // In your App / AppDelegate or initial view / view controller func configureTicketmasterSDK() {    // Replace with your actual API key from https://developer.ticketmaster.com/    let apiKey = "YOUR_API_KEY_HERE"    // Configure for your region and environment    let tmxSettings = TMAuthentication.TMXSettings(        apiKey: apiKey,        region: .US,              // Options: .US, .UK        environment: .Production  // Options: .Production, .Staging, .QA    )    // Optional: Customize branding    let branding = TMAuthentication.Branding(        displayName: "My App",        backgroundColor: .systemBlue,        foregroundColor: .white    )    let settings = TMAuthentication.BrandedServiceSettings(        tmxSettings: tmxSettings,        branding: branding    )    // Configure Authentication SDK    TMAuthentication.shared.configure(brandedServiceSettings: settings) { backendsConfigured in        print("Authentication configured with \(backendsConfigured.count) backend(s)")        // Now configure Tickets SDK        self.configureTicketsSDK()    } failure: { error in        print("❌ TMAuthentication configuration failed: \(error.localizedDescription)")    } } ``` ### 3.2 When to Call This Call `configureTicketmasterSDK()` early in your app lifecycle or before first use. **SwiftUI** ```swift @main struct MyApp: App {    init() {        configureTicketmasterSDK()    }    var body: some Scene {        WindowGroup {            ContentView()        }    } } ``` **UIKit** ```swift @main class AppDelegate: UIResponder, UIApplicationDelegate {    func application(_ application: UIApplication,                    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {        configureTicketmasterSDK()        return true    } } ``` --- ## Step 4: Configure Tickets SDK Once Authentication is configured, set up the Tickets SDK: ```swift func configureTicketsSDK() {    // Optional: Set branding colors (can also be done before configure)    TMTickets.shared.brandingColorsOverride = TMTickets.BrandingColors(        navBarColor: .systemBlue,        buttonColor: .systemBlue,        textColor: .white,        ticketColor: .systemBlue,        theme: .light  // or .dark    )    // Optional: Set delegates (see "Next Steps" below)    // TMTickets.shared.orderDelegate = self    // TMTickets.shared.analyticsDelegate = self    // TMTickets.shared.moduleDelegate = self    // Configure Tickets SDK    TMTickets.shared.configure {        print("Tickets SDK configured successfully")        // SDK is ready to use        self.enableTicketsFeature()    } failure: { error in        print("Failed to configure Tickets SDK: \(error.localizedDescription)")    } } ``` ### Key Configuration Options You can customize the SDK before calling `configure()`: ```swift // Branding TMTickets.shared.brandingColorsOverride = BrandingColors(...) TMTickets.shared.brandingColorButtonOverride = false  // Use TM blue for specific buttons TMTickets.shared.brandingColorNavBarOverride = false  // Don't brand nav bar TMTickets.shared.brandingTeamLogoImage = UIImage(named: "teamLogo") TMTickets.shared.useTMBrandedTicket = false  // Remove TM logo stripe from tickets // Advanced (usually not needed) TMTickets.shared.brandingEventsPageBackgroundOverride = UIImage(named: "background") ``` --- ## Step 5: Display Tickets Once configured, you can present the Tickets SDK UI. There are three presentation methods: ### Method 1: Push on Navigation Stack (Recommended) Best for apps that use a `UINavigationController`: ```swift func showTickets() {    let ticketsVC = TMTicketsViewController()    navigationController?.pushViewController(ticketsVC, animated: true) } ``` ### Method 2: Modal Presentation Easiest to integrate if you don't have a navigation controller: ```swift func showTickets() {    let ticketsVC = TMTicketsViewController()    present(ticketsVC, animated: true) } ``` ### Method 3: Embedded View For custom layouts where you want to embed tickets in your own UI: ```swift func embedTickets() {    let ticketsView = TMTicketsView()    // Add to your view hierarchy    view.addSubview(ticketsView)    // Setup constraints    ticketsView.translatesAutoresizingMaskIntoConstraints = false    NSLayoutConstraint.activate([        ticketsView.topAnchor.constraint(equalTo: view.topAnchor),        ticketsView.leadingAnchor.constraint(equalTo: view.leadingAnchor),        ticketsView.trailingAnchor.constraint(equalTo: view.trailingAnchor),        ticketsView.bottomAnchor.constraint(equalTo: view.bottomAnchor)    ])    // Start the Tickets SDK with this view    TMTickets.shared.start(ticketsView: ticketsView, callSource: "MyApp") } ``` --- ## Step 6: Verify Your Integration ### Test Checklist 1. **Build the app**: Ensure there are no compilation errors 2. **Run the app**: Verify the SDK initializes without crashes 3. **Check logs**: Look for configuration success messages in the console 4. **Login**: When you present the tickets view, you should see a login screen 5. **View tickets**: After logging in with a Ticketmaster account that has tickets, you should see the events and tickets ### Expected Console Output ```plaintext Authentication configured with X backend(s) Tickets SDK configured successfully ``` ### Troubleshooting If you encounter issues: **"Invalid API Key" error:** - Verify your API key is correct - Ensure it's active on the [Developer Portal](https://developer.ticketmaster.com/) - Check that you're using the right environment (.Production vs .Staging) **"Module not found" errors:** - Clean build folder (⌘ + Shift + K) - Clean derived data - Restart Xcode - Verify all required frameworks are added to your target **Crashes on launch:** - Ensure you configured Authentication SDK before Tickets SDK - Verify all frameworks are embedded and signed - Check minimum iOS version (17.0+) **No tickets showing after login:** - Ensure the logged-in account has purchased tickets - Check the API key has access to the correct backend (Host/Archtics) - Look for error messages in the console --- ## Complete Minimal Example Here's a complete minimal example that ties everything together: ```swift import UIKit import TicketmasterAuthentication import TicketmasterTickets class ViewController: UIViewController {    private var isConfigured = false    override func viewDidLoad() {        super.viewDidLoad()        title = "My App"        view.backgroundColor = .systemBackground        // Add a button to show tickets        let showTicketsButton = UIButton(type: .system)        showTicketsButton.setTitle("View My Tickets", for: .normal)        showTicketsButton.addTarget(self, action: #selector(showTicketsTapped), for: .touchUpInside)        showTicketsButton.translatesAutoresizingMaskIntoConstraints = false        view.addSubview(showTicketsButton)        NSLayoutConstraint.activate([            showTicketsButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),            showTicketsButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)        ])        // Configure SDK        configureSDK()    }    func configureSDK() {        // Step 1: Configure Authentication        let tmxSettings = TMAuthentication.TMXSettings(            apiKey: "YOUR_API_KEY_HERE",            region: .US,            environment: .Production        )        let branding = TMAuthentication.Branding(            displayName: "My App",            backgroundColor: .systemBlue,            foregroundColor: .white        )        let settings = TMAuthentication.BrandedServiceSettings(            tmxSettings: tmxSettings,            branding: branding        )        TMAuthentication.shared.configure(brandedServiceSettings: settings) { [weak self] backendsConfigured in            print("✅ Authentication configured: \(backendsConfigured.count) backend(s)")            // Step 2: Configure Tickets            TMTickets.shared.configure {                print("✅ Tickets SDK configured successfully")                self?.isConfigured = true            } failure: { error in                print("❌ Tickets SDK configuration failed: \(error.localizedDescription)")            }        } failure: { error in            print("❌ TMAuthentication configuration failed: \(error.localizedDescription)")        }    }    @objc func showTicketsTapped() {        guard isConfigured else {            print("⚠️ SDK not yet configured")            return        }        let ticketsVC = TMTicketsViewController()        navigationController?.pushViewController(ticketsVC, animated: true)    } } ``` --- ## What's Next? Now that you have the basic integration working, explore these topics: ### Essential Next Steps - [**Integration Examples**](/v1/docs/configuration-1) - Explore code examples to furhter customize your integration. - [**Sample App**](/v1/docs/sample-app-ios-review) - Explore a complete example implementation provided by Ticketmaster. ### Advanced Features - [**Analytics**](/v1/docs/information) - Track user behavior and page views - [**Custom Modules**](/v1/docs/modules-overview) - Add custom content to the tickets page - [**Multi-Backend Support**](/v1/docs/authentication-1#multiteam-authentication) - Support multiple teams/venues ### Developer Resources - [**Troubleshooting**](/v1/docs/troubleshooting) - Solutions to common issues --- ## Need Help? - **Support or Issues:** Contact your Ticketmaster integration representative - **GitHub:** [iOS-TicketmasterSDK](https://github.com/ticketmaster/iOS-TicketmasterSDK) --- ## Summary You've successfully integrated the Tickets SDK! Here's what you accomplished: - Installed the SDK frameworks via Swift Package Manager - Configured Authentication SDK with your API key - Configured Tickets SDK with optional branding - Displayed the tickets view in your app - Verified your integration works Your users can now view, manage, and use their Ticketmaster tickets directly in your app!