במדריך הזה מתוארות בעיות נפוצות ומוסבר איך לפתור אותן. אפשר גם להשתמש בכלי לפתרון בעיות בדף 'קישורי עומק' ב-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 17 ואילך): מריצים את הפקודה
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"כדי לבדוק אילו אפליקציות מועמדות, מסנני Intent במניפסט וכללים של קישורי עומק דינמיים לאפליקציה תואמים לכתובת ה-URL. פרטים נוספים זמינים במאמר בנושא אבחון של פתרון קישורים באמצעות הדגל debug-link.
- בדקו את הקובץ
הכללים הדינמיים לא מתעדכנים במכשירי Android מגרסה 15 ואילך
- בעיה: עדכנתם את הכללים בקובץ
assetlinks.json, אבל האפליקציה לא מטפלת בקישורים החדשים. - פתרון:
- אלצו אימות מחדש: הדרך המהימנה ביותר לבדוק שינויים היא לאלץ משיכת נתונים מחדש באמצעות הפקודה
adb shell pm verify-app-links --re-verify <your-package-name>. - בדקו אם יש שגיאות הקלדה: עברו היטב על התחביר של התאמות התבניות בכללים.
- בודקים את כללי הסינון במניפסט: בודקים את כללי מסנן ה-Intent במניפסט של האפליקציה כדי לוודא שנתיב הקישור לא מסונן. אם הקישור מסונן, צריך להגדיר את מסנן ה-Intent בקובץ מניפסט של האפליקציה כך שיהיה פחות מגביל.
- אבחון כללים תואמים (Android 17 ואילך): מריצים את הפקודה
adb shell am start --debug-link -a android.intent.action.VIEW -d "<URL>"כדי לבדוק אילו כללים נבדקו ולקבוע אם כלל החרגה (allow = 1) מנע את פתיחת האפליקציה. מידע נוסף מופיע במאמר אבחון פתרון בעיות בקישורים באמצעות הדגל debug-link.
- אלצו אימות מחדש: הדרך המהימנה ביותר לבדוק שינויים היא לאלץ משיכת נתונים מחדש באמצעות הפקודה
תיקון שגיאות הטמעה נפוצות
אם אתם לא מצליחים לאמת את קישורי האפליקציה ל-Android, כדאי לבדוק אם מופיעות אחת מהשגיאות הנפוצות הבאות. בקטע הזה, example.com משמש כ-placeholder לשם דומיין. כשמבצעים את הבדיקות האלה, צריך להחליף את example.com בשם הדומיין בפועל של השרת.
- הגדרת מסנן Intent שגויה
- בודקים אם כוללים כתובת URL שהאפליקציה לא בבעלותה ברכיב
<intent-filter>. - הגדרת השרת שגויה
בודקים את הגדרות ה-JSON של השרת ומוודאים שערך ה-SHA נכון.
בנוסף, צריך לבדוק שכתובת ה-
example.com.(עם הנקודה בסוף) מציגה את אותו התוכן כמוexample.com.- הפניות בצד השרת
המערכת לא מאמתת אף קישור לאפליקציית Android עבור האפליקציה שלכם אם הגדרתם הפניה אוטומטית כמו זו:
http://example.comעדhttps://example.comexample.comעדwww.example.com
ההתנהגות הזו מגנה על האבטחה של האפליקציה.
- יציבות השרת
בודקים אם אפליקציות הלקוח יכולות להתחבר לשרת.
- קישורים שלא ניתן לאמת
למטרות בדיקה, יכול להיות שתוסיפו בכוונה קישורים שלא ניתן לאמת. חשוב לזכור שב-Android 11 ומטה, הקישורים האלה גורמים למערכת לא לאמת את כל הקישורים לאפליקציות Android באפליקציה שלכם.
- חתימה שגויה בקובץ assetlinks.json
מוודאים שהחתימה נכונה ותואמת לחתימה ששימשה לחתימה על האפליקציה. טעויות נפוצות כוללות:
- האפליקציה נחתמה באמצעות אישור ניפוי באגים, וב-
assetlinks.jsonיש רק חתימה של גרסת ההפצה. - חתימה באותיות קטנות ב-
assetlinks.json. החתימה צריכה להיות באותיות רישיות. - אם אתם משתמשים בחתימת אפליקציה ב-Play, ודאו שאתם משתמשים בחתימה ש-Google משתמשת בה כדי לחתום על כל גרסה של האפליקציה. כדי לאמת את הפרטים האלה, כולל קטע JSON מלא, אפשר לפעול לפי ההוראות בנושא הצהרה על שיוכים לאתרים.
- האפליקציה נחתמה באמצעות אישור ניפוי באגים, וב-
יצירת דוח על באג
לבעיות מורכבות שקשה לשחזר, כדאי לתעד דוח על באג ולנתח אותו. כך תוכלו לקבל תובנות חשובות לגבי תהליך האימות ושגיאות ברמת המערכת.