מדריך למעבר ל-Android Consumer SDK 3.0

מעבר ל-Kotlin 2.0

אם אתם משתמשים ב-Consumer SDK ל-Android מגרסה 3.0 ואילך, אתם צריכים לשדרג ל-Kotlin 2.0. בדף הזה מפורטות הנחיות שיעזרו לכם לעבור לגרסה החדשה של Kotlin.

תאימות של Gradle ו-AGP

ל-Kotlin 2.0 יש דרישות לגבי הגרסאות המינימליות והמקסימליות של Gradle ושל הפלאגין של Android Gradle‏ (AGP). חשוב לוודא שהפרויקט עומד בדרישות האלה ל-Kotlin 2.0.

גרסת ה-AGP המינימלית ל-Consumer SDK בגרסה 3.0 ומעלה

כדי להשתמש ב-Consumer SDK 3.0, צריך להשתמש ב-AGP 7.3 ואילך.

מצב R8 מלא

גרסה 3 ומטה של Consumer SDK לא תומכת במצב R8 מלא. אם האפליקציה מטרגטת את AGP 8.0 ואילך, צריך להשבית באופן מפורש את מצב Full R8.

# settings.gradle
android.enableR8.fullMode=false

תאימות לגרסאות של Kotlin

‫Kotlin תומכת בתאימות לדורות קודמים עם שלוש גרסאות קודמות של השפה. כלומר, אם אתם כבר משתמשים ב-Kotlin מגרסה 1.7 ואילך עם Consumer SDK, אתם אמורים להיות מסוגלים לשדרג ל-Kotlin מגרסה 2.0 בלי שתצטרכו לפתור את כל שינויי התוכנה שעלולים לגרום לכשל. עם זאת, התאימות ל-Kotlin חלה רק על תכונות שפה יציבות. אם אתם משתמשים בתכונות אלפא, בטא או ניסיוניות בשפת Kotlin, יכול להיות שתצטרכו לבצע שינויים נוספים במהלך השדרוג.

דגלי תאימות של Kotlin

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

language-version X.Y

דגל זה מחזיר שינויי תוכנה שעלולים לגרום לכשל להתנהגות של גרסה קודמת של Kotlin. לדוגמה, אם אתם משתמשים ב-Kotlin 1.7, אתם יכולים לציין את [ - language-version 1.7] והשינויים החדשים שעלולים לגרום לכשל לא יחולו יותר:

android {
   kotlinOptions {
       languageVersion = '1.7'
   }
}
api-version X.Y

הדגל הזה מונע שימוש בממשקי API חדשים לפני שהקוד התלוי במורד הזרם מוכן לשילוב של Kotlin 2.0.

android {
   kotlinOptions {
       apiVersion = '1.7'
   }
}

גישה ממוקדת יותר

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