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

במדריך הזה מתוארות בעיות נפוצות ומוסבר איך לפתור אותן. אפשר גם להשתמש בכלי לפתרון בעיות בדף 'קישורי עומק' ב-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 משמש כ-placeholder לשם הדומיין. כשמבצעים את הבדיקות האלה, צריך להחליף את example.com בשם הדומיין בפועל של השרת.

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

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

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

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

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

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

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

חוסן השרת

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

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

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

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

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

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