paint-brush
Implementujte bezplatné skúšobné verzie vo svojej aplikácii pomocou StoreKit 2: Podrobný sprievodcapodľa@namaswic
695 čítania
695 čítania

Implementujte bezplatné skúšobné verzie vo svojej aplikácii pomocou StoreKit 2: Podrobný sprievodca

podľa Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Príliš dlho; Čítať

S StoreKit 2 spoločnosť Apple predstavila vylepšené nástroje, ktoré vám pomôžu skontrolovať, či používateľ spĺňa úvodné ponuky. V tomto článku vás prevedieme implementáciou bezplatných skúšobných verzií do vašej aplikácie spolu s útržkami kódu na overenie vhodnosti používateľa. A určite si dávajte pozor na „**Protipy**“ roztrúsené po celom článku, kde zdieľam niekoľko osobných postrehov z mojej skúsenosti.
featured image - Implementujte bezplatné skúšobné verzie vo svojej aplikácii pomocou StoreKit 2: Podrobný sprievodca
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Ponuka bezplatnej skúšobnej verzie je skvelý spôsob, ako povzbudiť používateľov, aby vyskúšali prémiové funkcie vašej aplikácie, čím sa zvýši šanca, že ich premenia na platiacich predplatiteľov. S aplikáciou StoreKit 2 spoločnosť Apple predstavila vylepšené nástroje, ktoré vám pomôžu skontrolovať, či používateľ spĺňa úvodné ponuky. V tomto článku vás prevedieme implementáciou bezplatných skúšobných verzií do vašej aplikácie spolu s útržkami kódu na overenie vhodnosti používateľa. Budeme sa zaoberať aj testovacími scenármi pre oprávnených aj neoprávnených používateľov. A určite dávajte pozor na „ Tipy pre profesionálov “ roztrúsené po celom článku, kde zdieľam niekoľko osobných postrehov z mojej skúsenosti!


Ako nastaviť bezplatné skúšobné verzie pre vašu aplikáciu v App Store Connect

Skôr ako začnete s kódovaním, nezabudnite nakonfigurovať nastavenia nákupu v aplikácii v App Store Connect:

  1. Prihláste sa do App Store Connect a prejdite do sekcie „Moje aplikácie“.
  2. Vyberte svoju aplikáciu a prejdite na kartu „Funkcie“ .
  3. V časti Nákupy v aplikácii vytvorte nový produkt s automatickým obnovením predplatného .
  4. Definujte podrobnosti o predplatnom vrátane ceny a bezplatného skúšobného obdobia (napr. 7 dní) nastavením úvodnej ponuky.
  5. Uložte zmeny.

Ako nastaviť zobrazenie odberu a skontrolovať, či má používateľ nárok na bezplatnú skúšobnú verziu?

Zjednoduším to tým, že vám ukážem útržok kódu, ako chcete pre používateľa vypočítať oprávnenosť na skúšobnú verziu

Vytvorte zobrazenie SwiftUI na zobrazenie ponuky bezplatnej skúšobnej verzie a spracovanie interakcií používateľov. V úryvku kódu zanechám veľa komentárov, ktoré vás prevedú.


 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() } } }

Otestujte stavy spôsobilosti na bezplatnú skúšobnú verziu v Xcode

Apple poskytuje robustné nástroje na testovanie rôznych stavov používateľov (napr. vhodných alebo nevhodných na bezplatnú skúšobnú verziu) pomocou StoreKit Testing v Xcode :

  • Vytvorte konfiguračný súbor StoreKit:
    • Prejdite na Súbor > Nový > Súbor... > Konfiguračný súbor StoreKit v Xcode.

    • Nastavte si predplatné produktov vrátane skúšobných období a stavov oprávnenosti.


  • Tip pre profesionálov : Môžete tiež vytvoriť nový konfiguračný súbor na synchronizáciu konfiguračného súboru z App Store Connect, a tak nemusíte nastavovať všetky produkty.


  • Simulujte rôzne scenáre:

    • V editore schém v časti Možnosti vyberte konfiguračný súbor StoreKit.
    • Spustite svoju aplikáciu v testovacom prostredí StoreKit, aby ste mohli simulovať rôzne scenáre:
      • Nárok na bezplatnú skúšobnú verziu:

        Ak chcete simulovať používateľa bezplatnej skúšobnej verzie, uistite sa, že v správcovi transakcií nemáte žiadne transakcie.

        Ak chcete zobraziť správcu transakcií. Prejdite na DebugStoreKitManage Transactions


  • Nespĺňa podmienky na bezplatnú skúšobnú verziu:

    Simulovať používateľa, ktorý nemá nárok na bezplatnú skúšobnú verziu. Predplatné môžete pridať manuálne zo správcu transakcií v správcovi transakcií. Môžete klepnúť na tlačidlo Pridať na obrazovke správcu transakcií a potom vybrať transakciu, ktorú chcete pridať. Tu sa pokúšam nakonfigurovať mesačné predplatné pre používateľa. Po pridaní tejto transakcie a opätovnom spustení aplikácie by ste mali vidieť oprávnenosť skúšobnej verzie označenú ako nepravdivú.


    Tip pre profesionálov: K nákupu môžete zahrnúť aj UUID, pričom toto pole použite na uloženie ID používateľa. Týmto spôsobom môžete zistiť, ktorý používateľ uskutočnil nákup vo vašej aplikácii. Tieto informácie je možné neskôr získať z histórie transakcií používateľa.

Vykonajte testovanie v karanténe

Testovanie v karanténe vám umožňuje testovať nákupy v aplikácii a predplatné v prostredí, ktoré napodobňuje produkčné prostredie App Store, a zároveň vám dáva slobodu zosmiešňovať niekoľko hraničných prípadov, ako je prerušený nákup, rodinné zdieľanie a simulácia nákupov uskutočnených mimo aplikácii alebo v inom zariadení. To vám tiež umožňuje


Ale ešte predtým, tu je návod, ako nastaviť a používať testovanie v karanténe:

  1. Vytvorte si účet testera v karanténe:

    • Prejdite na App Store Connect > Používatelia a prístup > Testeri karantény .
    • Vytvorte si nový testovací účet v karanténe zadaním jedinečnej e-mailovej adresy, hesla a ďalších požadovaných podrobností.
  2. Prihláste sa pomocou účtu Sandbox Tester:

    • Na svojom testovacom zariadení prejdite do časti Nastavenia > App Store > Účet Sandbox .
    • Prihláste sa pomocou poverení testera karantény, ktoré ste vytvorili.
  3. Spustite svoju aplikáciu v režime karantény:

    • Vytvorte a spustite svoju aplikáciu na fyzickom zariadení (testovanie v karanténe v simulátore nefunguje).
    • Pokúste sa spustiť bezplatnú skúšobnú verziu alebo uskutočniť nákup pomocou účtu testera karantény. Transakcia bude pokračovať v prostredí karantény, čo vám umožní otestovať celý tok vrátane oprávnenosti na bezplatné skúšobné verzie, úspešnosti nákupu, zrušenia a ďalších stavov.
  4. Vyskúšajte rôzne scenáre:

    • Prvý používateľ: Pri prvom nákupe použite účet karantény na overenie, či je bezplatná skúšobná verzia ponúkaná správne. Ak chcete použiť rovnaký účet v karanténe na po sebe nasledujúce pokusy o kontrolu kvality, môžete v skutočnosti resetovať oprávnenosť používateľa a tiež vymazať všetky transakcie pre účet v karanténe. Môžete to urobiť v aplikácii App Store Connect alebo v nastaveniach
    • Zrušený nákup: Otestujte, ako si aplikácia poradí so zrušením nákupu používateľom počas procesu.
    • Zlyhanie siete: Simulujte problémy so sieťou odpojením a opätovným pripojením siete, aby ste videli, ako aplikácia spracováva neúspešné transakcie.
    • Bezplatná skúšobná verzia Neoprávnené: Je to trochu zložité, ale nie nemožné. Najprv chcete Nastavenia → App Store → Kliknite na účet karantény → Klepnite na Spravovať. Tu by ste mali byť schopní manuálne pridať transakciu do účtu sandbox pre používateľa. Teraz by ste mali mať možnosť otestovať nespôsobilosť používateľa na skúšobnú verziu.



Tip pre profesionálov: Účet Apple nemôže mať viacero aktívnych odberov, takže dvaja rôzni používatelia nemôžu vykonávať samostatné nákupy v aplikácii pomocou rovnakého Apple ID. Nezabudnite skontrolovať svoju aplikáciu pre tento prípad používateľa.

Referencie

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/