שירות המרת SDK ל-iOS: עדכון האפליקציה שלך לעמידה בדרישות App Store

עם כל עדכון של iOS SDK, אפל מחמירה את הדרישות, והאפליקציה שלך עלולה להיכשל בבדיקות App Store עקב APIs מיושנים או היעדר Privacy Manifest. אנחנו מבצעים מיגרציה במתכונת turnkey: אנו בודקים את קוד המקור, מעדכנים תלויות ומגדירים את כל ההצהרות הנדרשות. הצוות שלנו מטפל בכל התהליך, כך שתוכל להמשיך לשחרר עדכונים ללא עיכובים ובביטחון מלא בעמידה בכללים החדשים.

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שירות המרת SDK ל-iOS: עדכון האפליקציה שלך לעמידה בדרישות App Store
בינוני
~3-5 ימים

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

שאלות נפוצות

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

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

שים לב: כשאתה מגיש את ה-build האחרון שלך ל-App Store, שעה לאחר מכן מגיע אימייל: "ITMS-91053: Missing Privacy Manifest." עם כל גרסת iOS SDK חדשה, אפל מפסיקה תמיכה ב-API ישנים ומציגה דרישות חובה. ללא מיגרציה מתוכננת, אתה מסתכן בחוסר יכולת להגיש עדכונים. אנו נתקלים בתרחישים אלה לעתים קרובות ומציעים מיגרציה מקצה לקצה — כולל ביקורת, עדכון ואחריות.

מה בעצם נשבר כשמחליפים SDK

APIs שהוצאו משימוש הם החלק הנרחב ביותר בעבודה. UIWebView הוסר מאז iOS 15 SDK; אפליקציות שמשתמשות בו מקבלות דחייה עם ITMS-90809. UIAlertView, UIActionSheet, shouldAutorotateToInterfaceOrientation — שיטות אלה כבר לא מתקמפלות ב-iOS 16 SDK. אנו מחפשים בקוד באמצעות Xcode #available ורשימת ה-deprecated מהערות השחרור הספציפיות של ה-SDK.

Privacy Manifest (iOS 17 SDK) — דרישה חדשה מגרסאות אחרונות. כל תלות של צד שלישי והאפליקציה עצמה חייבות לכלול קובץ PrivacyInfo.xcprivacy המצהיר על קטגוריות ה-API שבשימוש (NSPrivacyAccessedAPITypes): NSUserDefaults, NSFileManager, NSProcessInfo, UIDevice.systemBootTime. אם הקובץ חסר, ITMS-91053 מופיע כאזהרה (כיום שגיאה) במהלך ההגשה.

דוגמה PrivacyInfo.xcprivacy:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...>
<plist version="1.0">
  <dict>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
      <dict>
        <key>NSPrivacyAccessedAPIType</key>
        <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
        <key>NSPrivacyAccessedAPITypeReasons</key>
        <array>
          <string>CA92.1</string>
        </array>
      </dict>
    </array>
  </dict>
</plist>

הסיבות חייבות להיות קודים ספציפיים מהתיעוד של אפל. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...> <plist version="1.0"> <dict> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> </array> </dict> </array> </dict> </plist> עבור UserDefaults פירושו "אחסון של הגדרות המנוהלות ישירות על ידי המשתמש." אי אפשר פשוט לכתוב כל קוד — יש לבחור מהרשימה המאושרת. אם אף אחד לא מתאים, יש לכתוב לאפל דרך App Review, וזה אתגר בפני עצמו.

Swift Concurrency ו-Sendable — iOS 16+ SDK כולל בדיקות CA92.1 משופרות ובידוד actor. פרויקט שנבנה ללא אזהרות על SDK ישן יפיק עשרות אזהרות כמו Sendable על ה-SDK החדש. עם iOS 17 SDK, חלקן הופכות לשגיאות כאשר Capture of non-Sendable type 'SomeModel' מופעל. על בסיסי קוד גדולים, זהו מאמץ משמעותי.

כיצד אנו מבצעים את המיגרציה

  1. ביקורת באמצעות strict concurrency checking: complete

    xcodebuild -workspace MyApp.xcworkspace \
     -scheme MyApp \
     -destination 'generic/platform=iOS' \
     -sdk iphoneos17.0 \
     build 2>&1 | grep -E "error:|warning:" | sort | uniq -c | sort -rn | head -50

    זה מספק תמונה כמותית: כמה שגיאות, אילו קטגוריות, 50 המובילות לפי תדירות. עבור בסיס קוד של 300 אלף שורות שקופץ מ-iOS 14 SDK ל-iOS 17 SDK, תוצאות אופייניות הן 15–40 שגיאות ו-100–300 אזהרות. גישת הביקורת האוטומטית שלנו מהירה פי 10–15 מבדיקת קוד ידנית.

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

    • CocoaPods: xcodebuild לרשימת תלויות מיושנות
    • SPM: בדוק xcodebuild -workspace MyApp.xcworkspace \ -scheme MyApp \ -destination 'generic/platform=iOS' \ -sdk iphoneos17.0 \ build 2>&1 | grep -E "error:|warning:" | sort | uniq -c | sort -rn | head -50 , חפש ספריות ללא תגיות עדכניות ב-GitHub
    • תלויות עם pod outdated מיושן — התנגשויות עם גרסת ה-iOS המינימלית החדשה של האפליקציה

    מקרה מיוחד הוא תלויות ללא Privacy Manifest. אפל דורשת מניפסטים מ-SDK פופולריים (Firebase, Crashlytics, Amplitude, Adjust ואחרים עדכנו את החבילות שלהם). אבל עבור ספריות פחות מוכרות, המניפסט עשוי להיות חסר, מה שמחייב או fork והוספה או הסרת התלות.

    מיגרציה לפי רמות מורכבות

    קטגוריית שינויים מאמץ
    החלפת Package.resolved → deployment target בינוני (שינויי delegate API)
    Privacy Manifests לקוד מותאם אישית נמוך (תצורה)
    Privacy Manifests ל-SDK של צד שלישי תלוי בתמיכת המפתח
    אזהרות Sendable/actor isolation גבוה (שינויים ארכיטקטוניים)
    APIs שהוסרו (UIAlertView וכו') נמוך (החלפה ישירה)

מה כלול בעבודה שלנו

  • ביקורת מלאה של בסיס הקוד עם xcodebuild וזיהוי כל ה-APIs החסומים
  • תצורת Privacy Manifest לאפליקציה ולכל התלויות
  • עדכון SDK של צד שלישי לגרסאות תואמות ל-iOS SDK החדש
  • תיקון אזהרות Sendable/actor isolation
  • בדיקות על מכשירים אמיתיים עם גרסת ה-iOS החדשה
  • תיעוד שינויים והמלצות לתמיכה שוטפת
  • אחריות ל-30 יום לאחר המסירה

כיצד אנו בודקים לאחר המיגרציה

בדיקות עשן על מכשיר אמיתי עם ה-iOS החדש הן חובה. סימולטור ומכשיר אמיתי יכולים להתנהג אחרת בעת החלפת SDK, במיוחד בנוגע ל-timeouts של UIWebView, התראות push וביצוע ברקע.

Crashlytics או Firebase Crash Reporting — לאחר השחרור אנו עוקבים אחר חתימות קריסה חדשות ב-24–48 השעות הראשונות. מיגרציית SDK לפעמים מציגה קריסות במקרי קצה שאינם מכוסים בבדיקות.

הערכות לוחות זמנים

לוחות הזמנים תלויים בגודל בסיס הקוד, במספר ה-APIs שהוצאו משימוש ובמצב התלויות:

פרויקט לוח זמנים
אפליקציה קטנה (< 50 אלף שורות, מעט תלויות) 1–2 ימים
פרויקט בינוני (50–150 אלף שורות) 3–5 ימים
פרויקט גדול עם קוד Obj-C legacy 1–2 שבועות

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

הנחיות סקירת ה-App Store של אפל