paint-brush
Укараненне бясплатных пробных версій у вашай праграме з дапамогай StoreKit 2: пакрокавае кіраўніцтвапа@namaswic
678 чытанні
678 чытанні

Укараненне бясплатных пробных версій у вашай праграме з дапамогай StoreKit 2: пакрокавае кіраўніцтва

па Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Занадта доўга; Чытаць

У StoreKit 2 Apple прадставіла пашыраныя інструменты, якія дапамогуць вам праверыць права карыстальніка на ўступныя прапановы. У гэтым артыкуле мы правядзем вас праз рэалізацыю бясплатных пробных версій у вашым дадатку, у камплекце з фрагментамі кода для праверкі прыдатнасці карыстальніка. І не забудзьцеся сачыць за «**Прафесійнымі парадамі**», раскіданымі па ўсім артыкуле, дзе я дзялюся некаторымі асабістымі меркаваннямі са свайго досведу.
featured image - Укараненне бясплатных пробных версій у вашай праграме з дапамогай StoreKit 2: пакрокавае кіраўніцтва
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Прапанова бясплатнай пробнай версіі - выдатны спосаб заахвоціць карыстальнікаў апрабаваць прэміум-функцыі вашай праграмы, павялічваючы шанцы ператварыць іх у платных падпісчыкаў. У StoreKit 2 Apple прадставіла пашыраныя інструменты, якія дапамогуць вам праверыць права карыстальніка на ўступныя прапановы. У гэтым артыкуле мы правядзем вас праз рэалізацыю бясплатных пробных версій у вашым дадатку, у камплекце з фрагментамі кода для праверкі прыдатнасці карыстальніка. Мы таксама разгледзім сцэнарыі тэсціравання як для карыстальнікаў, якія маюць права, так і для карыстальнікаў, якія не маюць права. І не забудзьцеся сачыць за « Парадамі прафесіяналаў », раскіданымі па артыкуле, дзе я дзялюся некаторымі асабістымі меркаваннямі са свайго досведу!


Як наладзіць бясплатную пробную версію вашага прыкладання ў App Store Connect

Перш чым прыступіць да кадавання, пераканайцеся, што вы сканфігуравалі параметры пакупак у праграме ў App Store Connect:

  1. Увайдзіце ў App Store Connect і перайдзіце ў раздзел «Мае праграмы».
  2. Выберыце сваю праграму і перайдзіце на ўкладку «Функцыі» .
  3. У раздзеле "Пакупкі ў праграме" стварыце новы прадукт падпіскі з магчымасцю аўтаматычнага аднаўлення .
  4. Вызначце дэталі вашай падпіскі, уключаючы цэны і бясплатны пробны перыяд (напрыклад, 7 дзён), усталяваўшы ўступную прапанову.
  5. Захавайце змены.

Як наладзіць прагляд падпіскі і праверыць, ці мае карыстальнік права на бясплатную пробную версію?

Я зраблю гэта простым, пакажу вам фрагмент кода, які паказвае, як вы хочаце вылічыць права на пробную версію для карыстальніка

Стварыце прагляд SwiftUI для адлюстравання прапановы бясплатнай пробнай версіі і апрацоўкі ўзаемадзеяння карыстальнікаў. Я пакіну шмат каментарыяў ва фрагменце кода, каб правесці вас.


 import StoreKit2 // StoreManager is responsible to communicate with Storekit Framework provided by Apple for monetization class StoreManager: ObservableObject { @Published var message: String = "" // We will use this property to display the right message to the user @Published var products: [Product] = [] // This will be responsible to store the products fetched that we defined // in App Store Connect // Fetch products from the App Store func fetchProducts() { Task { do { // product_id is the id that you would have defined in App Store Connect. let storeProducts = try await Product.products(for: ["product_id"]) products = storeProducts } catch { message = "Failed to fetch products: \(error.localizedDescription)" } } } // Initiate purchase func purchase() { guard let product = products.first else { // There is a possibility of products not being fetched from App Store Connect. // Pro Tip: From experience, even though we defined the products on App Store Connect, it is possible // that the products are not found post attempting to fetch. So, it is important to handle this case. message = "No product available." return } Task { do { let result = try await product.purchase() switch result { case .success(let verification): switch verification { case .verified: message = "Purchase successful!" case .unverified: message = "Could not verify the purchase." } case .userCancelled: message = "Purchase cancelled." case .pending: message = "Purchase is pending." @unknown default: message = "Unknown result." } } catch { message = "Purchase failed: \(error.localizedDescription)" } } } // Check if the user is eligible for a free trial func checkTrialEligibility() async -> Bool { guard let product = products.first else { return false } do { // So when you define a auto renewable subscriptions, there are usually bond in a group. The group can again be // found in App Store Connect let eligibility = try await product.subscription?.isEligibleForIntroOffer(for groupID: 111111) return eligibility ?? false } catch { message = "Error checking trial eligibility: \(error.localizedDescription)" return false } } }


 import SwiftUI import StoreKit struct SubscriptionView: View { @StateObject private var storeManager = StoreManager() @State private var isEligibleForFreeTrial = false var body: some View { VStack { Text("Unlock Premium Features") .font(.title) .padding() Text("Get a 7-day free trial of our premium subscription.") .multilineTextAlignment(.center) .padding() Button(action: { storeManager.purchase() }) { // Based on user status, we can display the text Text(isEligibleForFreeTrial ? "Start Free Trial" : "Start Subscription") .bold() .frame(width: 200, height: 50) .background(Color.blue) .foregroundColor(.white) .cornerRadius(10) } Text(storeManager.message) .padding() } .onAppear { storeManager.fetchProducts() checkTrialEligibility() } } private func checkTrialEligibility() { Task { isEligibleForFreeTrial = await storeManager.checkTrialEligibility() } } }

Праверце права на бясплатную пробную версію ў Xcode

Apple прадастаўляе надзейныя інструменты для тэсціравання розных станаў карыстальнікаў (напрыклад, права або непрыдатнасць для бясплатнай пробнай версіі) з выкарыстаннем StoreKit Testing у Xcode :

  • Стварыце файл канфігурацыі StoreKit:
    • Перайдзіце ў меню Файл > Новы > Файл... > Файл канфігурацыі StoreKit у Xcode.

    • Наладзьце падпісныя прадукты, уключаючы пробныя перыяды і станы прыдатнасці.


  • Прафесійная парада : Вы таксама можаце стварыць новы файл канфігурацыі для сінхранізацыі файла канфігурацыі з App Store Connect, і такім чынам вам не спатрэбіцца наладжваць усе прадукты.


  • Імітацыя розных сцэнарыяў:

    • У рэдактары схем у раздзеле «Параметры» абярыце файл канфігурацыі StoreKit.
    • Запусціце сваю праграму ў асяроддзі тэсціравання StoreKit, каб змадэляваць розныя сцэнарыі:
      • Права на бясплатную пробную версію:

        Каб змадэляваць бясплатнага пробнага карыстальніка, пераканайцеся, што ў менеджэры транзакцый няма транзакцый.

        Каб убачыць менеджэр транзакцый. Перайдзіце ў меню DebugStoreKitManage Transactions


  • Непрыдатныя для бясплатнай пробнай версіі:

    Для імітацыі карыстальніка, які не мае права на бясплатную пробную версію. Вы можаце ўручную дадаць падпіску з дыспетчара транзакцый у дыспетчар транзакцый. Вы можаце націснуць кнопку дадання на экране дыспетчара транзакцый, а затым выбраць транзакцыю, якую хочаце дадаць. Тут я спрабую наладзіць штомесячную падпіску для карыстальніка. Пасля дадання гэтай транзакцыі і паўторнага запуску праграмы вы павінны ўбачыць права на пробную версію, пазначаную як ілжывая.


    Прафесійная парада: Вы таксама можаце ўключыць UUID з пакупкай, выкарыстоўваючы гэта поле для захавання ідэнтыфікатара карыстальніка. Такім чынам вы можаце даведацца, які карыстальнік зрабіў куплю ў вашым дадатку. Пазней гэтую інфармацыю можна будзе атрымаць з гісторыі транзакцый карыстальніка.

Выканайце тэсціраванне пясочніцы

Тэставанне ў пясочніцы дазваляе вам правяраць пакупкі і падпіскі ў праграме ў асяроддзі, якое імітуе вытворчае асяроддзе App Store, а таксама дае вам свабоду высмейваць пару пераважных выпадкаў, такіх як перапыненыя пакупкі, сумеснае выкарыстанне сям'і і імітацыя пакупак, зробленых па-за межамі дадатак або ў іншай прыладзе. Гэта таксама дазваляе вам


Але перш за ўсё вось як наладзіць і выкарыстоўваць тэсціраванне пясочніцы:

  1. Стварыце ўліковы запіс тэсціроўшчыка Sandbox:

    • Перайдзіце ў App Store Connect > Карыстальнікі і доступ > Тэсціроўшчыкі Sandbox .
    • Стварыце новы ўліковы запіс тэсціроўшчыка пясочніцы, указаўшы унікальны адрас электроннай пошты, пароль і іншыя неабходныя звесткі.
  2. Увайдзіце з дапамогай уліковага запісу тэсціроўшчыка Sandbox:

    • На прыладзе для тэсціравання перайдзіце ў Налады > App Store > Уліковы запіс Sandbox .
    • Увайдзіце з уліковымі дадзенымі тэстара пясочніцы, якія вы стварылі.
  3. Запусціце сваю праграму ў рэжыме пясочніцы:

    • Стварыце і запусціце сваю праграму на фізічнай прыладзе (тэставанне ў пясочніцы не працуе ў сімулятары).
    • Паспрабуйце пачаць бясплатную пробную версію або зрабіце куплю з дапамогай уліковага запісу тэсціроўшчыка пясочніцы. Транзакцыя будзе праходзіць у асяроддзі пясочніцы, што дазволіць вам праверыць увесь паток, уключаючы права на бясплатныя пробныя версіі, поспех пакупкі, адмену і іншыя стану.
  4. Праверце розныя сцэнарыі:

    • Першы карыстальнік: выкарыстоўвайце ўліковы запіс пясочніцы для першай пакупкі, каб пераканацца, што бясплатная пробная версія прапануецца правільна. Каб выкарыстоўваць адзін і той жа ўліковы запіс пясочніцы для паслядоўных спроб кантролю якасці, вы можаце фактычна скінуць прыдатнасць для карыстальніка, а таксама ачысціць усе транзакцыі для ўліковага запісу пясочніцы. Вы можаце зрабіць гэта як з App Store Connect, так і з Налад
    • Адмененая купля: праверце, як праграма апрацоўвае карыстальніка, які адмяняе куплю падчас патоку.
    • Збой сеткі: імітуйце праблемы з сеткай, адключыўшы і паўторна падключыўшы сетку, каб убачыць, як праграма апрацоўвае няўдалыя транзакцыі.
    • Бясплатная пробная версія непрыдатная: гэта крыху складана, але не немагчыма. Спачатку вы хочаце Налады → App Store → Націсніце на ўліковы запіс пясочніцы → Націсніце Кіраванне. Тут вы павінны мець магчымасць уручную дадаць транзакцыю ва ўліковы запіс пясочніцы для карыстальніка. Цяпер вы павінны быць у стане праверыць непрыдатнасць пробнага перыяду для карыстальніка.



Прафесійная парада: Уліковы запіс Apple не можа мець некалькі актыўных падпісак, таму два розныя карыстальнікі не могуць рабіць асобныя пакупкі ў праграме, выкарыстоўваючы адзін і той жа ідэнтыфікатар Apple. Абавязкова праверце сваю праграму на гэты выпадак карыстальніка.

Спасылкі

https://developer.apple.com/documentation/storekit

https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode/

https://developer.apple.com/app-store-connect/



L O A D I N G
. . . comments & more!

About Author

Namaswi Chandarana HackerNoon profile picture
Namaswi Chandarana@namaswic
I am a Senior Engineer focused on iOS app development and enhancing user experiences and well-being.

ВЕСІЦЬ БІРКІ

ГЭТЫ АРТЫКУЛ БЫЎ ПРАДСТАЎЛЕНЫ Ў...