App Thinning: Slicing, Bitcode ו-On-Demand Resources

אפליקציית ה-iOS שלכם כבדה מהנדרש, וגורמת למשתמשים לבזבז זמן ותעבורה על הורדת נתונים מיותרים. אנו מגדירים את מחזור ה-App Thinning המלא — Slicing, Bitcode ו-On-Demand Resources — כך שה-App Store מספקת רק את המשאבים הנחוצים לכל מכשיר. הצוות שלנו מוסר את הפרויקט במפתח מלא, תוך הבטחת פעולה אמינה ותמיכה מתמשכת.

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
App Thinning: Slicing, Bitcode ו-On-Demand Resources
בינוני
מ- 1 יום עד 3 ימים

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

שאלות נפוצות

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

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

האפליקציה שוקלת 180 מגה-בייט בעת הורדה באייפון 13 מיני, אך באותו גודל באייפד פרו, למרות שהטאבלט לא צריך נכסי @2x. תרחיש זה אופייני לפרויקטים שבהם משאבים נאספים לתוך חבילה אוניברסלית אחת מבלי להתחשב ברזולוציות ובארכיטקטורות. כתוצאה מכך, משתמשים עם מכשירים קטנים יותר מבזבזים תעבורה על נתונים מיותרים, וההתקנה מואטת.

App Thinning פותר בעיה זו: ה-App Store מרכיב אוטומטית גרסה המותאמת למכשיר הספציפי, ומספק רק את המשאבים הדרושים. אנו מגדירים את מחזור ה-App Thinning המלא — Slicing, Bitcode ו-On-Demand Resources — כדי להשיג חבילת הורדה קטנה ככל האפשר. החיסכון המשולב יכול להגיע עד 50%, אשר עבור 100,000 התקנות חוסך כ-$5,000 בתעבורה סלולרית. עלות אספקת האפליקציה יורדת בכ-$0.02 בערך לכל הורדה.

תיעוד המפתחים של Apple ממליץ להשתמש ב-Asset Catalog עבור כל המשאבים כדי ש-Slicing יפעל כראוי.

כיצד App Thinning מקטין את גודל ה-IPA

מכשיר גודל ללא Thinning גודל עם Thinning חיסכון
iPhone SE (דור 2) 180 מגה-בייט 110 מגה-בייט ~39%
iPhone 14 Pro 180 מגה-בייט 130 מגה-בייט ~28%
iPad Pro 12.9" 180 מגה-בייט 95 מגה-בייט ~47%

נתונים עבור אפליקציה עם פריסות @2x ו-@3x, תגי ODR והסרת Bitcode.

Slicing

ה-App Store יוצר קובצי IPA נפרדים עבור כל מכשיר. iPhone 8 מקבל רק משאבי @2x ו-slice מסוג ARMv8, iPad Pro מקבל @3x ו-ARM64e. הדרישה המרכזית: Asset Catalog. משאבים מחוץ ל-.xcassets אינם נחתכים — הם נכללים בכל הגרסאות. אנו מוודאים שכל התמונות נמצאות בקטלוג עם גדלי slot נכונים (@1x/@2x/@3x) ווריאציות trait (iPhone/iPad/Mac).

אנו מאמתים את התוצאה דרך Xcode → Product → Archive → Distribute → Ad Hoc/Development → Export → App Thinning: All compatible device variants. לאחר הייצוא, אנו בוחנים את App Thinning Size Report.txt — הטבלה מציגה גדלים עבור כל מכשיר.

On-Demand Resources (ODR)

תוכן שאינו נדרש מיד (רמות משחק, מדריכים, פילטרים) מתויג ונטען לפי בקשה. הוא מאוחסן בשרתי Apple, ואינו מגדיל את ה-IPA.

תצורה:

  1. ב-Xcode: Target → Build Phases → Copy Bundle Resources → הגדר On Demand Resource Tags עבור המשאב ב-Asset Catalog.
  2. בקוד, השתמש ב-NSBundleResourceRequest:
let request = NSBundleResourceRequest(tags: ["level_5"])
request.conditionallyBeginAccessingResources { available in
    if available {
        // ресурс уже загружен
    } else {
        request.beginAccessingResources { error in
            guard error == nil else { return }
            // ресурс загружен, можно использовать
        }
    }
}

מגבלות ODR:

פרמטר מגבלה
חבילת התקנה ראשונית עד 200 מגה-בייט
משאבי On-Demand עד 20 ג'יגה-בייט
ODR שנטען בו-זמנית עד 2 ג'יגה-בייט

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

Bitcode

Bitcode הוא ייצוג ביניים של LLVM ש-Apple יכולה להדר מחדש עבור ארכיטקטורות חדשות. בגרסאות Xcode מודרניות, Bitcode אינו נדרש עבור אפליקציות iOS — הדרישה הוסרה. עבור watchOS ו-tvOS, Bitcode עשוי עדיין להיות נחוץ אם משתמשים ב-Xcode ישן או בספריות ישנות. אם אתה תומך בספריות ישנות הדורשות Bitcode, אנו מגדירים let request = NSBundleResourceRequest(tags: ["level_5"]) request.conditionallyBeginAccessingResources { available in if available { // ресурс уже загружен } else { request.beginAccessingResources { error in guard error == nil else { return } // ресурс загружен, можно использовать } } } ב-Build Settings. כל המסגרות חייבות להכיל Bitcode, אחרת כל הבנייה מאבדת יכולת זו.

Bitcode הפך לאופציונלי עבור iOS עם עדכון Xcode. עם זאת, עבור watchOS ו-tvOS הוא עשוי עדיין להידרש עם Xcode או ספריות ישנות. אם אתה תומך בספריות ישנות, בדוק תאימות.

למה ODR חשוב למשחקים ולאפליקציות גדולות

ODR מאפשר לדחות את טעינת התוכן שאינו נדרש בעת ההפעלה. ללא ODR, המשתמש מוריד הכל בבת אחת, מה שמגדיל את הזמן עד להפעלה ראשונה ומפחית המרות. עם ODR מוגדר, האפליקציה נטענת מהר יותר, והתוכן נשלף לפי הצורך. השוואה: ללא ODR, משחק יכול לשקול 2 ג'יגה-בייט בהתקנה; עם ODR, רק 200 מגה-בייט בתוספת טעינת רמות.

טעויות נפוצות בתצורת App Thinning

  • משאבים שנוספו דרך ENABLE_BITCODE = YES במקום Asset Catalog → אין Slicing.
  • תגי ODR הוקצו אך File → Add Files אינו קורא ל-NSBundleResourceRequest → המשאב לעולם לא משוחרר.
  • בדיקת ODR לא בוצעה במצב לא מקוון → אצל משתמשים אמיתיים, ההורדה לא מתמודדת עם שגיאות רשת.

איך אנחנו עושים זאת: תהליך עבודה

  1. אנליטיקה: ביקורת על Asset Catalog הנוכחי, זיהוי משאבים מחוץ לקטלוג, הערכת נפח תוכן ODR.
  2. עיצוב: חלוקת משאבים ל-slotים @1x/@2x/@3x, הקצאת תגי ODR, החלטה על Bitcode.
  3. יישום: מעבר ל-Asset Catalog, יישום endAccessingResources() בקוד, הפעלת Bitcode אם נדרש.
  4. בדיקות: בנייה עם App Thinning על All compatible device variants, בדיקת Size Report, בדיקת ODR במצב לא מקוון.
  5. פריסה: העלאה ל-App Store Connect, אימות גדלים ב-TestFlight.

מה כלול

  • ביקורת על משאבים קיימים ו-Asset Catalog
  • העברת תמונות ל-.xcassets (אם נדרש)
  • תצורת Slicing ואימות Size Report
  • הגדרת On-Demand Resources עם תגים וקוד
  • בדיקות על מכשירים אמיתיים בתנאי רשת שונים
  • תיעוד הגדרות והמלצות

לוח זמנים ועלות

תצורת App Thinning עבור פרויקט קיים אורכת 1 עד 3 ימים. אם נדרשת העברת משאבים מתיקיות ל-Asset Catalog, הוסף 2–5 ימים בהתאם לנפח. התמחור מחושב באופן אישי. ניסיון של 7+ שנים בפיתוח iOS מבטיח הפחתת גודל IPA של 30–50% ללא אובדן פונקציונליות. כדי להעריך את הפוטנציאל של App Thinning עבור הפרויקט שלך, צור איתנו קשר. אנו נערוך ביקורת ונציע תצורה אופטימלית. הזמן את ההתקנה וקבל אפליקציה מותאמת.