paint-brush
Implementirajte besplatne probne verzije u svojoj aplikaciji uz StoreKit 2: vodič korak po korakby@namaswic
264 čitanja

Implementirajte besplatne probne verzije u svojoj aplikaciji uz StoreKit 2: vodič korak po korak

by Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Predugo; Citati

Sa StoreKit-om 2, Apple je predstavio poboljšane alate koji će vam pomoći da provjerite da li korisnik ispunjava uslove za uvodne ponude. U ovom članku ćemo vas voditi kroz implementaciju besplatnih probnih verzija u vašoj aplikaciji, zajedno s isječcima koda za provjeru ispunjavanja uslova korisnika. I svakako pripazite na "**Profesionalne savjete**" razasute po cijelom članku, gdje dijelim neke lične uvide iz svog iskustva.
featured image - Implementirajte besplatne probne verzije u svojoj aplikaciji uz StoreKit 2: vodič korak po korak
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Ponuda besplatne probne verzije odličan je način da ohrabrite korisnike da isprobaju premium funkcije vaše aplikacije, povećavajući šanse da ih pretvore u pretplatnike koji plaćaju. Sa StoreKit-om 2, Apple je predstavio poboljšane alate koji će vam pomoći da provjerite da li korisnik ispunjava uslove za uvodne ponude. U ovom članku ćemo vas voditi kroz implementaciju besplatnih probnih verzija u vašoj aplikaciji, zajedno s isječcima koda za provjeru ispunjavanja uslova korisnika. Također ćemo pokriti scenarije testiranja za kvalifikovane i nekvalifikovane korisnike. I svakako pripazite na " Profesionalne savjete " razasute po cijelom članku, gdje dijelim neke lične uvide iz svog iskustva!


Kako postaviti besplatne probne verzije za svoju aplikaciju u App Store Connect-u

Prije nego što počnete s kodiranjem, obavezno konfigurirajte postavke kupovine unutar aplikacije u App Store Connectu:

  1. Prijavite se na App Store Connect i idite na odjeljak "Moje aplikacije".
  2. Odaberite svoju aplikaciju i idite na karticu "Funkcije" .
  3. U odjeljku "Kupovine unutar aplikacije" kreirajte novi proizvod sa automatski obnovljivom pretplatom .
  4. Definišite detalje vaše pretplate, uključujući cijene i besplatni probni period (npr. 7 dana) postavljanjem uvodne ponude.
  5. Sačuvajte promjene.

Kako postaviti prikaz pretplate i provjeriti da li korisnik ispunjava uslove za besplatnu probnu verziju?

Ovo ću pojednostaviti tako što ću vam pokazati isječak koda za način na koji želite izračunati podobnost za probnu verziju za korisnika

Kreirajte prikaz SwiftUI za prikaz ponude besplatne probne verzije i upravljanje interakcijama korisnika. Ostaviću puno komentara u isječku koda da vas provedem.


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

Testirajte države kvalifikovanosti za besplatnu probu u Xcode-u

Apple pruža robusne alate za testiranje različitih korisničkih stanja (npr. ispunjavaju uslove ili ne ispunjavaju uslove za besplatnu probnu verziju) koristeći StoreKit Testing u Xcode-u :

  • Kreirajte StoreKit konfiguracijski fajl:
    • Idite na File > New > File... > StoreKit Configuration File u Xcode.

    • Postavite svoje pretplatničke proizvode, uključujući probne periode i statuse podobnosti.


  • Profesionalni savjet : Također možete kreirati novu konfiguracijsku datoteku za sinhronizaciju konfiguracijske datoteke iz App Store Connecta i na taj način ne morate postavljati sve proizvode.


  • Simulirajte različite scenarije:

    • U uređivaču sheme u okviru Opcije izaberite StoreKit konfiguracionu datoteku.
    • Pokrenite svoju aplikaciju u okruženju za testiranje StoreKit da simulirate različite scenarije:
      • Ispunjava uslove za besplatnu probnu verziju:

        Da biste simulirali besplatnog probnog korisnika, uvjerite se da nema transakcija u upravitelju transakcija.

        Da vidite upravitelja transakcija. Idite na Otklanjanje grešakaStoreKitUpravljanje transakcijama


  • Ne ispunjava uslove za besplatnu probnu verziju:

    Za simulaciju korisnika koji ne ispunjava uslove za besplatnu probnu verziju. Možete ručno dodati pretplatu iz upravitelja transakcija na upravitelju transakcija. Možete dodirnuti dugme za dodavanje na ekranu menadžera transakcija, a zatim odabrati transakciju koju želite da dodate. Evo, pokušavam konfigurirati mjesečnu pretplatu za korisnika. Nakon dodavanja te transakcije i ponovnog pokretanja aplikacije, trebali biste vidjeti da je ispunjavanje uslova za probu označeno kao netačno.


    Profesionalni savjet: Uz kupovinu možete uključiti i UUID, koristeći ovo polje za pohranu ID-a korisnika. Na taj način možete osigurati koji korisnik je kupio na vašoj aplikaciji. Ove informacije se kasnije mogu dohvatiti iz istorije transakcija korisnika.

Izvršite Sandbox testiranje

Testiranje u Sandboxu vam omogućava da testirate kupovine i pretplate vaše aplikacije u aplikaciji u okruženju koje imitira proizvodno okruženje App Store-a, a istovremeno vam daje slobodu da se rugate nekoliko rubnih slučajeva kao što su prekinuta kupovina, dijeljenje s porodicom i simulacija kupovina napravljenih izvan aplikaciji ili na drugom uređaju. Takođe vam omogućava da


Ali prije svega, evo kako postaviti i koristiti sandbox testiranje:

  1. Kreirajte račun za testiranje sandboxa:

    • Idite na App Store Connect > Korisnici i pristup > Sandbox Testeri .
    • Kreirajte novi nalog za testiranje sandboxa tako što ćete unijeti jedinstvenu adresu e-pošte, lozinku i druge potrebne detalje.
  2. Prijavite se sa Sandbox Tester računom:

    • Na uređaju za testiranje idite na Postavke > App Store > Sandbox račun .
    • Prijavite se s akreditivima za testiranje sandboxa koje ste kreirali.
  3. Pokrenite svoju aplikaciju u Sandbox načinu rada:

    • Izgradite i pokrenite svoju aplikaciju na fizičkom uređaju (testiranje u sandbox-u ne radi u simulatoru).
    • Pokušajte da pokrenete besplatnu probnu verziju ili izvršite kupovinu pomoću naloga za testiranje sandboxa. Transakcija će se nastaviti u zaštićenom okruženju, omogućavajući vam da testirate kompletan tok, uključujući ispunjavanje uslova za besplatne probe, uspjeh kupovine, otkazivanje i druga stanja.
  4. Testirajte različite scenarije:

    • Prvi put korisnik: Koristite sandbox nalog za prvu kupovinu da biste potvrdili da je besplatna probna verzija ispravno ponuđena. Da biste koristili isti sandbox nalog za uzastopne pokušaje QA, možete zapravo resetirati podobnost za korisnika i također izbrisati sve transakcije za sandbox račun. To možete učiniti i iz App Store Connecta ili iz postavki
    • Otkazana kupovina: Testirajte kako aplikacija postupa s korisnikom koji otkaže kupovinu tokom toka.
    • Neuspjeh mreže: Simulirajte probleme s mrežom tako što ćete isključiti i ponovo povezati mrežu da vidite kako aplikacija rješava neuspjele transakcije.
    • Besplatna probna verzija Ne ispunjava uslove: Ovo je malo nezgodno, ali nije nemoguće. Prvo, želite Postavke → App Store → Kliknite na sandbox nalog → Dodirnite Upravljaj. Ovdje biste trebali biti u mogućnosti da ručno dodate transakciju na sandbox račun za korisnika. Sada biste trebali biti u mogućnosti testirati nepodobnost za probu za korisnika.



Savjet stručnjaka: Apple račun ne može imati više aktivnih pretplata, tako da dva različita korisnika ne mogu vršiti odvojene kupovine u aplikaciji koristeći isti Apple ID. Obavezno provjerite svoju aplikaciju za ovaj korisnički slučaj.

Reference

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.

HANG TAGS

OVAJ ČLANAK JE PREDSTAVLJEN U...