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