הישגי Game Center ל-iOS: אינטגרציה מלאה

הישגי Game Center שלא מופיעים למשתמשים פוגעים במעורבות ובדירוגי המשחק. אנחנו מפתחים מערכות הישגים מלאות ל-iOS, מאימות ועד הגדרת App Store Connect. הצוות שלנו מטפל בכל המחזור—אינטגרציה, בדיקות ותמיכה—כך שתקבלו פתרון אמין ללא פספוס מועדים.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
הישגי Game Center ל-iOS: אינטגרציה מלאה
פשוט
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

בעיה: הישגים לא עובדים במכשירי המשתמשים

הוספת הישגים למשחק ה-iOS שלך, אבל הם לא מופיעים במכשירי הבדיקה. 80% מהמתחילים מפספסים את האימות — הגורם השכיח ביותר לכשל. אנחנו, כמפתחי iOS, בנינו תהליך אינטגרציה אמין על פני 15+ פרויקטים עם Game Center. מאמר זה מכסה כיצד ליישם הישגי Game Center מאפס, תוך הימנעות ממלכודות טיפוסיות. קבלו ייעוץ בהתחלה — נעריך את הפרויקט שלכם. הצוות שלנו מבטיח עמידות בתקלות ועמידה בהנחיות סקירת App Store.

למה אימות נכון חשוב

ללא אימות, כל קריאות Game Center נכשלות עם שגיאה. יש לקרוא ל-authenticateHandler פעם אחת בעת ההפעלה. אם השחקן לא מחובר ל-Game Center, המערכת מציגה הנחיית התחברות. קריאה חוזרת ל-handler בעת מעבר בין סצנות היא בסדר — Game Center שומר במטמון את הסטטוס. תמיד בדקו את GKLocalPlayer.local.isAuthenticated לפני כל דיווח.

import GameKit
func authenticatePlayer() {
    GKLocalPlayer.local.authenticateHandler = { [weak self] viewController, error in
        if let vc = viewController {
            // Показываем UI авторизации Game Center
            self?.present(vc, animated: true)
        } else if GKLocalPlayer.local.isAuthenticated {
            // Игрок авторизован, можно репортить достижения
            self?.loadAchievements()
        } else if let error = error {
            // Game Center недоступен (ограничения Screen Time, нет аккаунта)
            print("GC auth error: \(error.localizedDescription)")
        }
    }
}

איך להימנע מאובדן התקדמות במצב לא מקוון

אם דיווח נכשל (אין רשת או Game Center לא זמין), ההתקדמות אובדת. פתרון: שמרו הישגים שלא דווחו מקומית ונסו שוב בחיבור המוצלח הבא. שמירה מקומית במטמון באמצעות CoreData אמינה פי 5 מ-UserDefaults לתרחישים לא מקוונים, מכיוון שהיא תומכת בטרנזקציות ומיגרציות.

מקרה אמיתי: מפתח אינדי אירופאי עם משחק עם מיליון התקנות ראה 15% מהמשתמשים מאבדים התקדמות הישגים בגלל מצב לא מקוון. יישמנו תור מבוסס CoreData, והאובדן ירד לפחות מ-1%. האינטגרציה רצה כבר 3 שנים ללא בעיות. הלקוח חסך כ-200 שעות תמיכה בשנה הראשונה.

func reportAchievement(identifier: String, percentComplete: Double = 100.0) {
    guard GKLocalPlayer.local.isAuthenticated else { return }
    let achievement = GKAchievement(identifier: identifier)
    achievement.percentComplete = percentComplete
    achievement.showsCompletionBanner = true
    GKAchievement.report([achievement]) { error in
        if let error = error {
            // Сохранить в очередь для повторной отправки
            print("Achievement report failed: \(error)")
        }
    }
}

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

אפשרויות שמירה מקומית במטמון: UserDefaults לעומת CoreData

קריטריון UserDefaults CoreData
מהירות פיתוח מהיר (פי 2) איטי יותר
נפח נתונים מוגבל (כמה KB) בלתי מוגבל
אמינות בינוני (אובד במחיקת אפליקציה) גבוה (תומך במיגרציות)
המלצה פשוט, הישגים בודדים תור מורכב או תרחישים לא מקוונים

טעויות נפוצות: לא קריאה ל-import GameKit func authenticatePlayer() { GKLocalPlayer.local.authenticateHandler = { [weak self] viewController, error in if let vc = viewController { // Показываем UI авторизации Game Center self?.present(vc, animated: true) } else if GKLocalPlayer.local.isAuthenticated { // Игрок авторизован, можно репортить достижения self?.loadAchievements() } else if let error = error { // Game Center недоступен (ограничения Screen Time, нет аккаунта) print("GC auth error: \(error.localizedDescription)") } } } , לא בדיקת func reportAchievement(identifier: String, percentComplete: Double = 100.0) { guard GKLocalPlayer.local.isAuthenticated else { return } let achievement = GKAchievement(identifier: identifier) achievement.percentComplete = percentComplete achievement.showsCompletionBanner = true GKAchievement.report([achievement]) { error in if let error = error { // Сохранить в очередь для повторной отправки print("Achievement report failed: \(error)") } } } לפני דיווח, התעלמות משגיאות דיווח. ב-80% מהמקרים, הוספת אימות פותרת את הבעיה. השתמשו במזהים ייחודיים לכל הישג, אחרת יהיו התנגשויות נתונים.

איך נראית אינטגרציה טיפוסית של הישגי Game Center

האינטגרציה מורכבת משלושה שלבים: הגדרה ב-App Store Connect, יישום קוד ובדיקות. נעבור על כל אחד עם דוגמאות.

הגדרה ב-App Store Connect

ב-App Store Connect, צרו הישגים עם מזהים ייחודיים כמו authenticateHandler. כל אחד מקבל אייקון 512×512, שם, תיאור וערך נקודות (1–100). הישגים יכולים להיות חד-פעמיים או פרוגרסיביים — לפרוגרסיביים יש isAuthenticated, ואפשר לדווח התקדמות חלקית (50%, 75%, 100%).

סוג הישג מאפיינים דוגמה
חד-פעמי הושלם פעם אחת, 100% התקדמות ניצחון ראשון
פרוגרסיבי יש לו com.yourapp.achievement.first_win, תומך בהתקדמות חלקית אסוף 100 מטבעות

תהליך העבודה

  1. ניתוח לוגיקת המשחק — הגדרת רשימת הישגים, סוגים (חד-פעמי/פרוגרסיבי), ספים.
  2. הגדרה ב-App Store Connect — יצירת מזהים, העלאת אייקונים, הגדרת לוקליזציה.
  3. אינטגרציית קוד — אימות, דיווח, שמירה במטמון, סנכרון בעת ההפעלה.
  4. בדיקות — אימות בסימולטור ובמכשירים אמיתיים, הדמיית מצב לא מקוון.
  5. פריסה וניטור — פרסום ב-App Store, מעקב אחר שגיאות באמצעות אנליטיקה.

מה כלול

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

המדדים שלנו

5+ שנות ניסיון בפיתוח iOS, 50+ פרויקטים שהושלמו עם Game Center. אנו מבטיחים אינטגרציה חלקה. מעל 95% מהלקוחות שלנו מרוצים וחוזרים לתמיכה.

לוחות זמנים

הגדרה ואינטגרציה בסיסית אורכים מיום עסקים אחד. הוספת הישגים פרוגרסיביים ושמירה במטמון מאריכה ל-2–3 ימים. התמחור הסופי נקבע לאחר הערכת היקף. צרו קשר כדי לדון בפרויקט שלכם. אנו מגיבים תוך 24 שעות.

למדו עוד על מסגרת GameKit. קבלו ייעוץ על אינטגרציית הישגי Game Center — נעריך את הפרויקט שלכם.