paint-brush
Впровадьте безкоштовні пробні версії у своїй програмі за допомогою StoreKit 2: покроковий посібникза@namaswic
264 показання

Впровадьте безкоштовні пробні версії у своїй програмі за допомогою 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 у Xcode :

  • Створіть файл конфігурації StoreKit:
    • Перейдіть у меню Файл > Створити > Файл... > Файл конфігурації StoreKit у Xcode.

    • Налаштуйте продукти за підпискою, включаючи пробні періоди та стани відповідності.


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


  • Імітуйте різні сценарії:

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

        Щоб імітувати користувача безкоштовної пробної версії, переконайтеся, що в диспетчері транзакцій немає транзакцій.

        Щоб побачити менеджер транзакцій. Перейдіть до DebugStoreKitManage Transactions


  • Не відповідає вимогам для безкоштовної пробної версії:

    Для імітації користувача, який не має права на безкоштовну пробну версію. Ви можете вручну додати підписку з менеджера транзакцій у менеджер транзакцій. Ви можете натиснути кнопку «Додати» на екрані менеджера транзакцій, а потім вибрати транзакцію, яку потрібно додати. Тут я намагаюся налаштувати місячну підписку для користувача. Після додавання цієї транзакції та повторного запуску програми ви побачите, що відповідність пробній версії позначена як false.


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

Виконайте тестування пісочниці

Тестування в ізольованому середовищі дає вам змогу тестувати покупки в програмі та підписки вашого додатка в середовищі, яке імітує робоче середовище App Store, а також дає вам свободу висміювати пару крайніх випадків, як-от перервані покупки, спільний доступ до сім’ї та імітація покупок, зроблених поза межами програмі або на іншому пристрої. Це також дозволяє


Але перш за все, ось як налаштувати та використовувати тестування пісочниці:

  1. Створіть обліковий запис тестувальника Sandbox:

    • Перейдіть до App Store Connect > Користувачі та доступ > Sandbox Testers .
    • Створіть новий обліковий запис тестувальника ізольованого середовища, надавши унікальну адресу електронної пошти, пароль та інші необхідні дані.
  2. Увійдіть за допомогою облікового запису тестувальника Sandbox:

    • На пристрої для тестування перейдіть у Налаштування > App Store > Обліковий запис ізольованого програмного середовища .
    • Увійдіть, використовуючи облікові дані тестувальника пісочниці, які ви створили.
  3. Запустіть програму в режимі пісочниці:

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

    • Користувач вперше: використовуйте обліковий запис ізольованого програмного середовища для першої покупки, щоб переконатися, що безкоштовна пробна версія пропонується правильно. Щоб використовувати той самий обліковий запис ізольованого програмного середовища для послідовних спроб перевірки якості, ви можете фактично скинути відповідність користувача, а також очистити всі транзакції для облікового запису ізольованого програмного середовища. Це можна зробити як у App Store Connect, так і в налаштуваннях
    • Скасована покупка: перевірте, як програма обробляє користувача, який скасовує покупку під час потоку.
    • Збій мережі: імітуйте проблеми з мережею, від’єднавши та повторно підключивши мережу, щоб побачити, як програма обробляє невдалі транзакції.
    • Безкоштовна пробна версія не відповідає вимогам: це трохи складно, але не неможливо. По-перше, ви хочете налаштувати → App Store → Натисніть обліковий запис пісочниці → Торкніть Керувати. Тут ви зможете вручну додати транзакцію до облікового запису ізольованого програмного середовища для користувача. Тепер ви зможете перевірити непридатність пробної версії для користувача.



Порада професіонала: обліковий запис Apple не може мати кілька активних підписок, тому два різні користувачі не можуть робити окремі покупки в додатку за допомогою одного Apple ID. Обов’язково перевірте свою програму на наявність цього випадку користувача.

Список літератури

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.

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...