paint-brush
StoreKit 2 yordamida ilovangizda bepul sinovlarni amalga oshiring: bosqichma-bosqich qoʻllanmatomonidan@namaswic
439 o'qishlar
439 o'qishlar

StoreKit 2 yordamida ilovangizda bepul sinovlarni amalga oshiring: bosqichma-bosqich qoʻllanma

tomonidan Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

Juda uzoq; O'qish

StoreKit 2 bilan Apple foydalanuvchining kirish takliflariga muvofiqligini tekshirishga yordam beradigan takomillashtirilgan vositalarni taqdim etdi. Ushbu maqolada biz sizga ilovangizda foydalanuvchining muvofiqligini tekshirish uchun kod parchalari bilan toʻliq bepul sinovlarni amalga oshirish boʻyicha koʻrsatma beramiz. Maqola bo'ylab tarqalgan "**Pro Maslahatlar**" ga e'tibor bering, u erda men o'z tajribamdan ba'zi shaxsiy fikrlarim bilan o'rtoqlashaman.
featured image - StoreKit 2 yordamida ilovangizda bepul sinovlarni amalga oshiring: bosqichma-bosqich qoʻllanma
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


Bepul sinov muddatini taklif qilish foydalanuvchilarni ilovangizning premium xususiyatlarini sinab ko‘rishga undashning ajoyib usuli bo‘lib, ularni pullik obunachilarga aylantirish imkoniyatini oshiradi. StoreKit 2 bilan Apple foydalanuvchining kirish takliflariga muvofiqligini tekshirishga yordam beradigan takomillashtirilgan vositalarni taqdim etdi. Ushbu maqolada biz sizga ilovangizda foydalanuvchining muvofiqligini tekshirish uchun kod parchalari bilan toʻliq bepul sinovlarni amalga oshirish boʻyicha koʻrsatma beramiz. Shuningdek, biz mos va nomaqbul foydalanuvchilar uchun sinov stsenariylarini ham ko‘rib chiqamiz. Maqola bo'ylab tarqalgan " Pro Maslahatlar " ni diqqat bilan kuzatib boring, u erda men o'z tajribamdan ba'zi shaxsiy fikrlarim bilan o'rtoqlashaman!


App Store Connect-da ilovangiz uchun bepul sinovlarni qanday o'rnatish mumkin

Kodlashni boshlashdan oldin, App Store Connect-da ilova ichidagi xarid sozlamalarini sozlaganingizga ishonch hosil qiling:

  1. App Store Connect-ga kiring va "Mening ilovalarim" bo'limiga o'ting.
  2. Ilovangizni tanlang va "Xususiyatlar" yorlig'iga o'ting.
  3. “Ilova ichidagi xaridlar” ostida yangi avtomatik yangilanadigan obuna mahsulotini yarating.
  4. Kirish taklifini oʻrnatish orqali obuna tafsilotlarini, jumladan narx va bepul sinov muddatini (masalan, 7 kun) aniqlang.
  5. O'zgartirishlaringizni saqlang.

Obuna ko'rinishini qanday o'rnatish va foydalanuvchining bepul sinov muddatiga mosligini tekshirish mumkinmi?

Men sizga foydalanuvchi uchun sinov muddatini qanday hisoblashni xohlayotganingiz uchun kod parchasini ko'rsatib, buni soddalashtiraman.

Bepul sinov taklifini ko'rsatish va foydalanuvchi o'zaro munosabatlarini boshqarish uchun SwiftUI ko'rinishini yarating. Sizni o'rganish uchun kod parchasida ko'plab sharhlar qoldiraman.


 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-da bepul sinov shartlarini sinab ko'ring

Apple Xcode-da StoreKit testidan foydalangan holda turli xil foydalanuvchi holatlarini (masalan, bepul sinov uchun mos yoki mos emas) sinab ko'rish uchun mustahkam vositalarni taqdim etadi:

  • StoreKit konfiguratsiya faylini yarating:
    • Xcode-da Fayl > Yangi > Fayl... > StoreKit konfiguratsiya fayliga o‘ting.

    • Obuna mahsulotlarini, jumladan, sinov muddatlari va muvofiqlik holatlarini sozlang.


  • Maslahat : App Store Connect-dan konfiguratsiya faylini sinxronlash uchun yangi konfiguratsiya faylini ham yaratishingiz mumkin va bunda barcha mahsulotlarni sozlash shart emas.


  • Turli stsenariylarni simulyatsiya qilish:

    • Tanlovlar ostidagi sxema muharririda StoreKit konfiguratsiya faylini tanlang.
    • Turli stsenariylarni simulyatsiya qilish uchun ilovangizni StoreKit sinov muhitida ishga tushiring:
      • Bepul sinov uchun mos:

        Bepul sinov foydalanuvchisini taqlid qilish uchun tranzaksiya menejerida hech qanday tranzaksiya yo'qligiga ishonch hosil qiling.

        Tranzaksiya menejerini ko'rish uchun. DebugStoreKitTranzaksiyalarni boshqarish- ga o'ting


  • Bepul sinov uchun mos emas:

    Bepul sinovdan foydalanish huquqiga ega bo'lmagan foydalanuvchini simulyatsiya qilish uchun. Obunani tranzaksiya menejeridagi tranzaksiya menejeridan qo'lda qo'shishingiz mumkin. Siz tranzaksiya menejeri ekranidagi qo'shish tugmasini bosishingiz va keyin qo'shmoqchi bo'lgan tranzaksiyani tanlashingiz mumkin. Bu erda men foydalanuvchi uchun oylik obunani sozlashga harakat qilaman. Ushbu tranzaksiyani qo'shgandan va ilovani qayta ishga tushirgandan so'ng, sinov muddati noto'g'ri deb belgilanganligini ko'rishingiz kerak.


    Maslahat: Siz shuningdek, foydalanuvchi identifikatorini saqlash uchun ushbu maydondan foydalanib, xaridga UUID qo'shishingiz mumkin. Shunday qilib, qaysi foydalanuvchi ilovangizda xarid qilganiga ishonch hosil qilishingiz mumkin. Keyinchalik bu ma'lumotni foydalanuvchining tranzaksiya tarixidan olish mumkin.

Sandbox testini o'tkazing

Sandbox testi ilovangizning ilova ichidagi xaridlari va obunalarini App Store ishlab chiqarish muhitiga taqlid qiladigan muhitda sinab ko‘rish imkonini beradi, shu bilan birga sizga xaridlarni to‘xtatib turish, oila bilan bo‘lishish va tashqarida qilingan xaridlarni taqlid qilish kabi bir nechta chekli holatlarni masxara qilish erkinligini beradi. ilovada yoki boshqa qurilmada. Bu sizga ham imkon beradi


Biroq, avvalo, sinov muhiti sinovini qanday sozlash va undan foydalanish kerak:

  1. Sandbox tester hisobini yarating:

    • App Store Connect > Foydalanuvchilar va Kirish > Sandbox Testers- ga o'ting.
    • Noyob e-pochta manzili, parol va boshqa kerakli ma'lumotlarni taqdim etish orqali yangi sinov muhiti hisob qaydnomasini yarating.
  2. Sandbox Tester hisobi bilan tizimga kiring:

    • Sinov qurilmangizda Sozlamalar > Ilovalar doʻkoni > Sandbox hisobiga oʻting.
    • Oʻzingiz yaratgan sinov muhiti testerining hisob maʼlumotlari bilan tizimga kiring.
  3. Ilovangizni Sandbox rejimida ishga tushiring:

    • Ilovangizni jismoniy qurilmada yarating va ishga tushiring (simulyatorda sinov muhiti sinovi ishlamaydi).
    • Bepul sinovni boshlashga urinib ko'ring yoki sinov qutisi tester hisobidan xarid qiling. Tranzaksiya sinov muhitida davom etadi, bu sizga toʻliq oqimni, jumladan, bepul sinovlar, xaridning muvaffaqiyati, bekor qilinishi va boshqa holatlarni sinab koʻrish imkonini beradi.
  4. Turli stsenariylarni sinab ko'ring:

    • Birinchi marta foydalanuvchi: Bepul sinov muddati to'g'ri taklif qilinganligini tekshirish uchun birinchi marta xarid qilish uchun sinov muhiti hisob qaydnomasidan foydalaning. QAning ketma-ket urinishlari uchun bir xil sinov muhiti hisobidan foydalanish uchun siz aslida foydalanuvchi uchun muvofiqlikni qayta o'rnatishingiz va shuningdek, sinov muhiti hisobi uchun barcha tranzaksiyalarni o'chirishingiz mumkin. Buni ikkala App Store Connect yoki Sozlamalar orqali qilishingiz mumkin
    • Bekor qilingan xarid: Oqim davomida xaridni bekor qilgan foydalanuvchi bilan ilova qanday ishlashini sinab ko‘ring.
    • Tarmoq xatosi: Ilova muvaffaqiyatsiz tranzaksiyalarni qanday boshqarishini ko'rish uchun tarmoqni uzish va qayta ulash orqali tarmoq muammolarini simulyatsiya qiling.
    • Bepul sinov muddati nomaqbul: Bu biroz qiyin, ammo imkonsiz emas. Birinchidan, siz Parametrlar → App Store → Sandbox hisob qaydnomasini bosing → Boshqarish ga teging. Bu yerda siz tranzaksiyani foydalanuvchi uchun sandbox hisobiga qo'lda qo'shishingiz kerak. Endi siz foydalanuvchi uchun sinov muddatiga mos kelmasligini sinab ko'rishingiz kerak.



Maslahat: Apple hisob qaydnomasida bir nechta faol obuna bo'lishi mumkin emas, shuning uchun ikki xil foydalanuvchi bir xil Apple ID yordamida ilovada alohida xaridlarni amalga oshira olmaydi. Ushbu foydalanuvchi ishi uchun ilovangizni tekshirishni unutmang.

Ma'lumotnomalar

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.

TEGI QILISH

USHBU MAQOLA TAQDIM ETILGAN...