View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Nouveautés en matière d’achats intégrés Apple

    Découvrez comment les abonnements mensuels avec un engagement de 12 mois offrent aux utilisateurs une option de paiement plus abordable et assurent un engagement sur une plus longue durée. Apprenez à configurer et tester cette nouvelle option de paiement à l'aide d'App Store Connect, des API StoreKit, des tests Xcode, et plus encore. Explorez les améliorations apportées aux API d'utilisation des codes d'offre et à l'expérience de soumission à App Review.

    Chapitres

    • 0:01 - Introduction
    • 0:51 - Overview of monthly subscriptions with a 12-month commitment
    • 1:42 - Set up in App Store Connect
    • 2:28 - Merchandise with StoreKit
    • 6:55 - Monitor subscriptions with App Store Server APIs
    • 8:50 - Bundles and Suites
    • 9:26 - Offer code redemption
    • 10:35 - Enhanced submission experience
    • 12:38 - Next steps

    Ressources

    • In-App Purchase types
    • Managing the life cycle of monthly subscriptions with a 12-month commitment
    • Supporting monthly subscriptions with a 12-month commitment
    • App Store Server Notifications V2
    • Supporting offer codes in your app
    • Implementing a store in your app using the StoreKit API
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC26

    • Explorez Retention Messaging dans App Store Connect

    WWDC24

    • Implement App Store Offers

    WWDC23

    • Meet StoreKit for SwiftUI
    • What’s new in StoreKit 2 and StoreKit Testing in Xcode

    WWDC22

    • What's new in App Store Connect
  • Rechercher dans cette vidéo…
    • 3:29 - Merchandise pricing terms with StoreKit views

      // Merchandise pricing terms with StoreKit views
      
      import StoreKit
      import SwiftUI
      
      struct SubscriptionStore: View {
          var body: some View {
              SubscriptionStoreView(groupID: "3F19ED53") {
                  // Custom marketing content
              }
              .preferredSubscriptionPricingTerms {_, subscriptionInfo in
                  subscriptionInfo.pricingTerms.first {
                      $0.billingPlanType == .monthly
                  }
              }
          }
      }
    • 4:02 - Get subscription pricing terms and make a purchase

      // Get subscription pricing terms and make a purchase
      
      import StoreKit
      
      var product: Product?
      // Fetch and assign product
      
      // Get the monthly billing plan's pricing terms for merchandising
      let pricingTerms = product?.subscription?.pricingTerms
        .first(where: {$0.billingPlanType == .monthly })
      if let pricingTerms {
        let monthlyPrice = pricingTerms.billingDisplayPrice
        let totalCommitmentPrice = pricingTerms.commitmentInfo.price
        // Display both monthly and total commitment price to the customer
      }
      
      let result = try? await product?.purchase(options: [.billingPlanType(.monthly)])
      switch result {
        // Verify the transaction, give the customer access to
        // the purchased content, and then finish the transaction
      }
    • 5:05 - Sheet to manage subscriptions by subscriptionGroupID

      // Sheet to manage subscriptions by subscriptionGroupID
      
      import SwiftUI
      import StoreKit
      
      struct ManageSubscriptionsButton: View {
          let subscriptionGroupID: String
          @State var presentingManageSubscriptionsSheet: Bool = false
      
          var body: some View {
              Button("Manage Subscriptions") {
                  presentingManageSubscriptionsSheet = true
              }
              .manageSubscriptionsSheet(
                  isPresented: $presentingManageSubscriptionsSheet,
                  subscriptionGroupID: subscriptionGroupID
              )
          }
      }
    • 7:45 - JWSTransaction (decoded) for a monthly subscription with a 12-month commitment

      // JWSTransaction (decoded) for a monthly subscription with a 12-month commitment
      
      {
          // …
          "expiresDate": 1783503660000, // for this billing period
          "price": 10990, // for this billing period
          "productId": "plus.pro.annual",
          "purchaseDate": 1780911660000,
          "type": "Auto-Renewable Subscription",
          "billingPlanType": "MONTHLY",
          "commitmentInfo": {
              "billingPeriodNumber": 1,
              "totalBillingPeriods": 12,
              "commitmentExpiresDate": 1812447660000,
              "commitmentPrice": 131880,
          }
      }
    • 7:59 - JWSRenewalInfo (decoded) for a monthly subscription with a 12-month commitment

      // JWSRenewalInfo (decoded) for a monthly subscription with a 12-month commitment
      
      {
          // … 
          "renewalBillingPlanType": "MONTHLY",
          "commitmentInfo": {
              "commitmentAutoRenewProductId": “plus.standard.annual”,
              "commitmentAutoRenewStatus": 0,
              "commitmentRenewalDate": 1812447660000,
              "commitmentRenewalPrice": 10990,
              "commitmentRenewalBillingPlanType": "BILLED_UPFRONT"
          }
      }
    • 9:58 - Sheet to redeem an offer code

      // Sheet to redeem an offer code
      
      struct OfferCodeRedemption: View {
          @State var presentingOfferCodeSheet: Bool = false
      
          var body: some View {
              Button("Redeem Offer Code") {
                  presentingOfferCodeSheet = true
              }
              .offerCodeRedemption(options: [], isPresented: $presentingOfferCodeSheet) {result in
                  switch result {
                  case .success(let verificationResult):
                      switch verificationResult {
                          // Verify the transaction, give the customer access to
                          // the purchased content, and then finish the transaction
                      }
                  case .failure(let error):
                      // Handle error
                  }
              }
          }
      }
    • 0:01 - Introduction
    • Learn how to merchandise products and grow your business with expanded subscription pricing options, updates to the offer code redemption API, and an enhanced App Store Connect submission experience.

    • 0:51 - Overview of monthly subscriptions with a 12-month commitment
    • Monthly subscriptions with a 12-month commitment is a new pricing option that lets customers pay monthly for an annual subscription; can be added to new or existing one-year subscriptions in App Store Connect to reach a wider customer base.

    • 1:42 - Set up in App Store Connect
    • Configure monthly subscriptions with a 12-month commitment in App Store Connect. Set up pricing, offers, and availability.

    • 2:28 - Merchandise with StoreKit
    • Learn how SKDemo merchandises monthly subscriptions with a 12-month commitment using StoreKit and learn how to test with StoreKit Testing in Xcode.

    • 6:55 - Monitor subscriptions with App Store Server APIs
    • New fields in App Store Server APIs to manage the subscription lifecycle of monthly subscriptions with a 12-month commitment.

    • 8:50 - Bundles and Suites
    • Offering subscription Bundles and Suites is another way to provide customers with more value in their subscriptions across apps.

    • 9:26 - Offer code redemption
    • The offer code redemption API is extended to take in a set of RedeemOption values and returns a VerificationResult.

    • 10:35 - Enhanced submission experience
    • When you’re ready to submit an app to the App Store, you can utilize our enhanced submission experience for In-App Purchases in App Store Connect.

    • 12:38 - Next steps
    • Utilize the new features; adopt the expanded subscription pricing, update offer code redemption call sites, test in Xcode 27 and sandbox, and submit through the enhanced App Review experience.

Developer Footer

  • Vidéos
  • WWDC26
  • Nouveautés en matière d’achats intégrés Apple
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines