paint-brush
Ezarri doako probak zure aplikazioan StoreKit 2-rekin: urratsez urrats gidaarabera@namaswic
442 irakurketak
442 irakurketak

Ezarri doako probak zure aplikazioan StoreKit 2-rekin: urratsez urrats gida

arabera Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Luzeegia; Irakurri

StoreKit 2-rekin, Apple-k tresna hobetuak sartu ditu erabiltzaileak aurkezpen-eskaintzak jasotzeko duen eskubidea egiaztatzen laguntzeko. Artikulu honetan, zure aplikazioan doako probak ezartzen lagunduko dizugu, kode-zatiekin osatuta erabiltzailea egokia den egiaztatzeko. Ziurtatu artikuluan zehar sakabanatuta dauden "**Pro Aholkuak**"ri arretaz begiratu, non nire esperientziatik jasotako ikuspegi pertsonal batzuk partekatzen ditudan.
featured image - Ezarri doako probak zure aplikazioan StoreKit 2-rekin: urratsez urrats gida
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Doako proba bat eskaintzea modu bikaina da erabiltzaileak zure aplikazioaren premium funtzioak probatzera animatzeko, haiek ordainpeko harpidedun bihurtzeko aukerak areagotuz. StoreKit 2-rekin, Apple-k tresna hobetuak sartu ditu erabiltzaileak aurkezpen-eskaintzak jasotzeko duen eskubidea egiaztatzen laguntzeko. Artikulu honetan, zure aplikazioan doako probak ezartzen lagunduko dizugu, kode-zatiekin osatuta erabiltzailea egokia den egiaztatzeko. Erabiltzaile hautagarrientzako eta ez-prestagarrientzako proba-egoerak ere landuko ditugu. Ziurtatu artikuluan zehar sakabanatuta dauden " Pro Aholkuak " kontutan hartzen dituzula, non nire esperientziatik jasotako ikuspegi pertsonal batzuk partekatzen ditudan!


Nola konfiguratu zure aplikaziorako doako probak App Store Connect-en

Kodetzen hasi aurretik, ziurtatu aplikazioko erosketa ezarpenak App Store Connect-en konfiguratzen dituzula:

  1. Hasi saioa App Store Connect-en eta joan "Nire aplikazioak" atalera.
  2. Hautatu zure aplikazioa eta joan "Ezaugarriak" fitxara.
  3. "Aplikazio barruko erosketak" atalean, sortu harpidetza automatikoki berriztagarria den produktu berri bat.
  4. Definitu zure harpidetzaren xehetasunak, prezioak eta doako proba-epea barne (adibidez, 7 egun), hasierako eskaintza bat konfiguratuz.
  5. Gorde aldaketak.

Nola konfiguratu Harpidetza ikuspegia eta egiaztatu erabiltzailea doako probarako eskubidea ote den?

Hau erraztuko dut kode zatia erakutsita, erabiltzailearen probarako hautagarritasuna nola kalkulatu nahi duzun jakiteko.

Sortu SwiftUI ikuspegia doako probaren eskaintza bistaratzeko eta erabiltzaileen interakzioak kudeatzeko. Kode zatian iruzkin asko utziko ditut zu ibiltzeko.


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

Probatu doako probaldiaren hautagarritasuna Xcode-n

Apple-k tresna sendoak eskaintzen ditu erabiltzaile-egoera desberdinak probatzeko (adibidez, doako probarako eskubidea edo eza) StoreKit Testing Xcode-n erabiliz:

  • Sortu StoreKit konfigurazio fitxategia:
    • Joan Fitxategia > Berria > Fitxategia... > StoreKit konfigurazio fitxategia Xcode-n.

    • Konfiguratu harpidetza-produktuak, proba-aldiak eta hautagarritasun-egoerak barne.


  • Pro Aholkua : konfigurazio fitxategi berri bat ere sor dezakezu App Store Connect-etik konfigurazio fitxategia sinkronizatzeko eta horrela ez dituzu produktu guztiak konfiguratu behar.


  • Simulatu eszenatoki desberdinak:

    • Aukerak atalean dagoen Scheme Editor -en, hautatu StoreKit konfigurazio fitxategia.
    • Exekutatu zure aplikazioa StoreKit proba-ingurunean eszenatoki desberdinak simulatzeko:
      • Doako probarako eskubidea:

        Doako probako erabiltzaile bat simulatzeko, ziurtatu transakzio-kudeatzailean ez duzula transakziorik.

        Transakzio-kudeatzailea ikusteko. Joan AraztuStoreKitKudeatu transakzioak


  • Doako probarako eskubidea ez:

    Doako probarako eskubidea ez duen erabiltzailea simulatzeko. Transakzio-kudeatzailearen harpidetza eskuz gehi dezakezu transakzio-kudeatzailean. Transakzio-kudeatzailearen pantailako gehitu botoia sakatu dezakezu eta, ondoren, gehitu nahi duzun transakzioa hauta dezakezu. Hemen, erabiltzailearen hileroko harpidetza konfiguratzen saiatzen ari naiz. Transakzio hori gehitu eta aplikazioa berriro exekutatu ondoren, probaren hautagarritasuna faltsu gisa markatuta ikusi beharko zenuke.


    Pro Aholkua: UUID bat ere sar dezakezu erosketarekin, eremu hau erabiliz erabiltzailearen IDa gordetzeko. Horrela ziurtatu dezakezu zein erabiltzailek egin duen erosketa zure aplikazioan. Informazio hori geroago erabiltzailearen transakzio-historiatik atera daiteke.

Egin Sandbox probak

Sandbox-en probak aplikazioaren barneko erosketak eta harpidetzak probatzeko aukera ematen dizu App Store ekoizpen-ingurunea imitatzen duen ingurune batean, eta, aldi berean, ertz-kasu pare bat iseka egiteko askatasuna ematen dizu, hala nola erosketak eten, familia partekatzea eta kanpoan egindako erosketak simulatzeko. aplikazioa edo beste gailu batean. Gainera, aukera ematen dizu


Baina ezer baino lehen, hona hemen sandbox probak nola konfiguratu eta nola erabili:

  1. Sortu Sandbox Tester kontu bat:

    • Joan App Store Connect > Erabiltzaileak eta sarbidea > Sandbox probatzaileak .
    • Sortu sandbox probatzaile kontu berri bat helbide elektroniko bakarra, pasahitza eta beharrezko beste xehetasun batzuk emanez.
  2. Hasi saioa Sandbox Tester kontuarekin:

    • Proba egiteko gailuan, joan Ezarpenak > App Store > Sandbox kontua atalera.
    • Hasi saioa sortu dituzun sandbox probatzaileen kredentzialekin.
  3. Exekutatu zure aplikazioa Sandbox moduan:

    • Eraiki eta exekutatu aplikazioa gailu fisiko batean (sandbox probak ez du funtzionatzen simulagailuan).
    • Saiatu doako proba hasten edo erosketa bat egin sandbox tester kontua erabiliz. Transakzioa sandbox ingurunean egingo da, fluxu osoa probatu ahal izateko, doako probak egiteko aukera, erosketa arrakastatsua, bertan behera uztea eta beste egoera batzuk barne.
  4. Probatu eszenatoki desberdinak:

    • Lehen aldiz erabiltzailea: Erabili sandbox kontua lehen erosketa bat egiteko, doako proba behar bezala eskaintzen dela egiaztatzeko. Sandbox kontu bera QA jarraian saiakeretan erabiltzeko, benetan berrezarri dezakezu erabiltzailearen hautagarritasuna eta sandbox konturako transakzio guztiak garbitu. Hori egin dezakezu App Store Connect edo Ezarpenetatik
    • Bertan behera utzitako erosketa: probatu aplikazioak nola kudeatzen duen erabiltzaileak erosketa bertan behera uzten duen bitartean.
    • Sarearen hutsegitea: simulatu sareko arazoak sarea deskonektatuz eta berriro konektatuz aplikazioak huts egindako transakzioak nola kudeatzen dituen ikusteko.
    • Doako proba hautagarria: hau pixka bat zaila da baina ez ezinezkoa. Lehenik eta behin, Ezarpenak → App Store → Egin klik sandbox kontuan → Ukitu Kudeatu. Hemen transakzio bat eskuz gehitzeko gai izan beharko zenuke erabiltzailearen sandbox kontuan. Orain, erabiltzailearen proba-ezgaitasuna probatu ahal izango zenuke.



Pro Aholkua: Apple kontu batek ezin du harpidetza aktibo anitz izan, beraz, bi erabiltzaile ezberdin ezin dira aplikazioan erosketa bereizirik egin Apple ID bera erabiliz. Ziurtatu zure aplikazioa egiaztatzea erabiltzaile kasu honetarako.

Erreferentziak

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/