paint-brush
הטמע ניסויים חינם באפליקציה שלך עם StoreKit 2: מדריך שלב אחר שלבעל ידי@namaswic
471 קריאות
471 קריאות

הטמע ניסויים חינם באפליקציה שלך עם StoreKit 2: מדריך שלב אחר שלב

על ידי Namaswi Chandarana11m2024/09/17
Read on Terminal Reader

יותר מדי זמן; לקרוא

עם StoreKit 2, אפל הציגה כלים משופרים שיעזרו לך לבדוק את זכאותו של משתמש להצעות היכרות. במאמר זה, נדריך אותך דרך הטמעת ניסויים בחינם באפליקציה שלך, עם קטעי קוד כדי לאמת את זכאות המשתמש. והקפידו לפקוח עין על "**טיפים למקצוענים**" הפזורים לאורך המאמר, שם אני חולק כמה תובנות אישיות מניסיוני.
featured image - הטמע ניסויים חינם באפליקציה שלך עם StoreKit 2: מדריך שלב אחר שלב
Namaswi Chandarana HackerNoon profile picture
0-item
1-item


הצעת ניסיון חינם היא דרך מצוינת לעודד משתמשים לנסות את תכונות הפרימיום של האפליקציה שלך, ולהגדיל את הסיכויים להמיר אותם למנויים משלמים. עם StoreKit 2, אפל הציגה כלים משופרים שיעזרו לך לבדוק את זכאותו של משתמש להצעות היכרות. במאמר זה, נדריך אותך דרך הטמעת ניסויים בחינם באפליקציה שלך, עם קטעי קוד כדי לאמת את זכאות המשתמש. נסקור גם תרחישי בדיקה עבור משתמשים כשירים וגם לא כשירים. והקפידו לשים עין על " טיפים למקצוענים " הפזורים לאורך המאמר, שם אני חולק כמה תובנות אישיות מניסיוני!


כיצד להגדיר גרסאות ניסיון בחינם עבור האפליקציה שלך ב-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

אפל מספקת כלים חזקים לבדיקת מצבי משתמש שונים (למשל, כשיר או לא כשיר לגרסת ניסיון בחינם) באמצעות StoreKit Testing ב-Xcode :

  • צור קובץ תצורה של StoreKit:
    • עבור אל קובץ > חדש > קובץ... > קובץ תצורה של StoreKit ב-Xcode.

    • הגדר את מוצרי המנוי שלך, כולל תקופות ניסיון ומצבי זכאות.


  • טיפ מקצוען : אתה יכול גם ליצור קובץ תצורה חדש לסנכרון קובץ תצורה מ-App Store Connect וככה לא צריך להגדיר את כל המוצרים.


  • הדמיית תרחישים שונים:

    • בעורך הסכימה תחת אפשרויות , בחר את קובץ התצורה של StoreKit.
    • הפעל את האפליקציה שלך בסביבת הבדיקה של StoreKit כדי לדמות תרחישים שונים:
      • זכאי לניסיון חינם:

        כדי לדמות משתמש בגרסת ניסיון בחינם, ודא שאין עסקאות במנהל העסקאות.

        לראות את מנהל העסקאות. עבור אל ניפוי באגיםStoreKitניהול עסקאות


  • לא זכאי לניסיון חינם:

    כדי לדמות משתמש שאינו כשיר לתקופת ניסיון בחינם. אתה יכול להוסיף מנוי באופן ידני ממנהל העסקאות במנהל העסקאות. אתה יכול להקיש על כפתור ההוספה במסך מנהל העסקאות ולאחר מכן לבחור את העסקה שברצונך להוסיף. כאן, אני מנסה להגדיר מנוי חודשי עבור המשתמש. לאחר הוספת העסקה והפעלת האפליקציה שוב, אתה אמור לראות את זכאות הניסיון מסומנת כשקרית.


    טיפ מקצוען: אתה יכול גם לכלול UUID עם הרכישה, באמצעות שדה זה לאחסון מזהה המשתמש. כך תוכלו לוודא איזה משתמש ביצע את הרכישה באפליקציה שלכם. מאוחר יותר ניתן לאחזר מידע זה מהיסטוריית העסקאות של המשתמש.

בצע בדיקת ארגז חול

בדיקת ארגז חול מאפשרת לך לבדוק את הרכישות וההרשמות של האפליקציה שלך בתוך האפליקציה בסביבה המחקה את סביבת הייצור של App Store ובמקביל נותנת לך את החופש ללעוג לכמה מקרי קצה כמו רכישה מופרעת, שיתוף משפחתי והדמיית רכישות שבוצעו מחוץ ל-App Store. אפליקציה או במכשיר אחר. זה גם מאפשר לך


אבל לפני הכל, הנה איך להגדיר ולהשתמש בבדיקת ארגז חול:

  1. צור חשבון בודק ארגז חול:

    • עבור אל App Store Connect > משתמשים וגישה > בודקי ארגז חול .
    • צור חשבון בודק ארגז חול חדש על ידי מתן כתובת דוא"ל ייחודית, סיסמה ופרטים נדרשים אחרים.
  2. היכנס עם חשבון הבודק של ארגז חול:

    • במכשיר הבדיקה שלך, עבור אל הגדרות > App Store > חשבון ארגז חול .
    • היכנס עם האישורים של בודק ארגז החול שיצרת.
  3. הפעל את האפליקציה שלך במצב ארגז חול:

    • בנה והפעל את האפליקציה שלך במכשיר פיזי (בדיקת ארגז חול לא עובדת בסימולטור).
    • נסה להתחיל את תקופת הניסיון בחינם או לבצע רכישה באמצעות חשבון בודק ארגז החול. העסקה תתקדם בסביבת ארגז החול, מה שמאפשר לך לבדוק את הזרימה המלאה, כולל זכאות לנסיונות חינם, הצלחת רכישה, ביטול ומצבים נוספים.
  4. בדוק תרחישים שונים:

    • משתמש בפעם הראשונה: השתמש בחשבון ארגז החול לרכישה ראשונה כדי לוודא שגרסת הניסיון בחינם מוצעת כהלכה. כדי להשתמש באותו חשבון ארגז חול עבור ניסיונות רצופים של QA, אתה יכול למעשה לאפס את הזכאות למשתמש וגם לנקות את כל העסקאות עבור חשבון ארגז החול. אתה יכול לעשות זאת מ-App Store Connect או מהגדרות
    • רכישה מבוטלת: בדוק כיצד האפליקציה מטפלת במשתמש המבטל את הרכישה במהלך הזרימה.
    • כשל ברשת: הדמיית בעיות רשת על ידי ניתוק וחיבור מחדש של הרשת כדי לראות כיצד האפליקציה מטפלת בעסקאות שנכשלו.
    • ניסיון חינם לא מתאים: זה קצת מסובך אבל לא בלתי אפשרי. ראשית, ברצונך לעבור להגדרות → App Store → לחץ על חשבון ארגז החול → הקש על נהל. כאן אתה אמור להיות מסוגל להוסיף עסקה ידנית לחשבון ארגז החול עבור המשתמש. כעת, אתה אמור להיות מסוגל לבדוק את חוסר ההתאמה לניסוי עבור המשתמש.



טיפ מקצוען: לחשבון אפל לא יהיו מנויים פעילים מרובים, כך ששני משתמשים שונים לא יכולים לבצע רכישות נפרדות באפליקציה באמצעות אותו 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.

תלו תגים

מאמר זה הוצג ב...