פתרון בעיות בקישורי עומק לאפליקציות

במדריך הזה מתוארות בעיות נפוצות ומוסבר איך לפתור אותן. אפשר גם להשתמש בכלי לפתרון בעיות בדף 'קישורי עומק' ב-Play Console או בכלי App Links Assistant ב-Android Studio. מידע נוסף זמין במאמר כלים למפתחים של קישורים לאפליקציות.

  • הבעיה: לוחצים על קישור שאמור לפתוח את האפליקציה, אבל הוא נפתח בדפדפן אינטרנט או שמוצגת תיבת דו-שיח לבחירת האפליקציה.
  • פתרון:
    • בדקו את הקובץ assetlinks.json: ודאו שהקובץ הוא קובץ JSON תקין, שנגיש בנתיב https://<your-domain>/.well-known/assetlinks.json, ומוצג דרך חיבור HTTPS ללא הפניות אוטומטיות. משתמשים בכלי אימות אונליין.
    • בדקו את טביעת האצבע מסוג SHA-256: ודאו שהמאפיין sha256_cert_fingerprints בקובץ assetlinks.json תואם בדיוק לטביעת האצבע של מפתח החתימה של גרסת האפליקציה (אם אתם משתמשים בחתימת אפליקציה ב-Play, השתמשו בטביעת האצבע מ-Play Console). החתימה צריכה להיות באותיות רישיות.
    • בדקו את המאפיין autoVerify: ודאו שהמאפיין <intent-filter> בקובץ AndroidManifest.xml כולל את המאפיין android:autoVerify="true.
    • בודקים אם יש הפניות אוטומטיות בצד השרת: הפניות אוטומטיות מ-http אל https או מדומיין ללא www אל www עלולות לגרום לכך שהאימות ייכשל.
    • אלצו אימות מחדש: הריצו את פקודות ה-ADB במדריך בדיקת קישורי עומק לאפליקציה כדי לקבל תוצאת אימות עדכנית.

הכללים הדינמיים לא מתעדכנים במכשירי Android מגרסה 15 ואילך

  • בעיה: עדכנתם את הכללים בקובץ assetlinks.json, אבל האפליקציה לא מטפלת בקישורים החדשים.
  • פתרון:
    • אלצו אימות מחדש: הדרך המהימנה ביותר לבדוק שינויים היא לאלץ משיכת נתונים מחדש באמצעות הפקודה adb shell pm verify-app-links --re-verify. <your-package-name>.
    • בדקו אם יש שגיאות הקלדה: עברו היטב על התחביר של התבניות להתאמה בכללים.
    • בודקים את כללי הסינון במניפסט: בודקים את כללי מסנן ה-Intent במניפסט של האפליקציה כדי לוודא שנתיב הקישור לא מסונן. אם הקישור מסונן, צריך להגדיר מסנן Intent פחות מגביל בקובץ המניפסט של האפליקציה.

פתרון שגיאות נפוצות בהטמעה

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

הגדרה שגויה של מסנן Intent
בודקים אם כוללים כתובת URL שהאפליקציה לא בבעלותה ברכיב <intent-filter>.
הגדרת שרת שגויה

בודקים את הגדרות ה-JSON של השרת ומוודאים שערך ה-SHA נכון.

בנוסף, צריך לבדוק שכתובת ה-URL example.com. (עם הנקודה בסוף) מציגה את אותו התוכן כמו example.com.

הפניות אוטומטיות בצד השרת

המערכת לא מאמתת אף Android App Link לאפליקציה אם מגדירים הפניה אוטומטית כמו זו:

  • http://example.com עד https://example.com
  • example.com עד www.example.com

ההתנהגות הזו מגנה על האבטחה של האפליקציה.

חוסן השרת

בודקים אם אפליקציות הלקוח יכולות להתחבר לשרת.

קישורים שלא ניתן לאמת

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

חתימה שגויה בקובץ assetlinks.json

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

  • האפליקציה נחתמה באמצעות אישור ניפוי באגים, וב-assetlinks.json יש רק חתימה של גרסת הפקה.
  • החתימה באותיות קטנות ב-assetlinks.json. החתימה צריכה להיות באותיות רישיות.
  • אם אתם משתמשים בחתימת אפליקציה ב-Play, ודאו שאתם משתמשים בחתימה ש-Google משתמשת בה כדי לחתום על כל גרסה של האפליקציה. אפשר לאמת את הפרטים האלה, כולל קטע JSON מלא, באמצעות ההוראות להצהרה על שיוכים לאתרים.

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

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