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

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

בנוסף, צריך לבדוק שהכתובת 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 מלא, אפשר לפעול לפי ההוראות בנושא הצהרה על שיוכים לאתרים.