אנו מתקינים ומגדירים build-ים לשחרור עבור Meta Quest Store — החל מיצירת keystore ועד לחתימה סופית של APK/AAB. אין הפתעות בהגשה: כל ה-entitlements, ה-manifest והגדרות החבילה נבדקים לפני השליחה. אם נתקלתם בשגיאת INVALID_CREDENTIALS לאחר מעבר ל-keystore שחרור, סביר להניח שה-tביעת האצבע (fingerprint) אינה תואמת. בואו נתאר את הבעיות האופייניות וכיצד לפתור אותן.
היכן בדיוק נשברת שרשרת החתימה
הבעיה הנפוצה ביותר היא חוסר התאמה של keystore בין build-ים של debug ו-release. מפתחים בודקים במשך חודשים עם keystore debug, והכל עובד. מעבר ל-keystore שחרור עם SHA-1 שונה שובר את ה-entitlements המקושרים לאפליקציה ב-Horizon Developer Dashboard. משתמשים מתקינים את האפליקציה, פותחים אותה, ומקבלים שגיאת הרשאה ב-Platform SDK כי OVRPlatform.Initialize() מחזיר INVALID_CREDENTIALS.
הקטגוריה השנייה של בעיות היא AndroidManifest.xml. Meta דורשת קבוצה מסוימת של הרשאות ו-intent-filters: com.oculus.permission.HAND_TRACKING, com.oculus.permission.EYE_TRACKING, com.oculus.intent.category.VR. אם האפליקציה משתמשת ב-passthrough, עליכם לכלול במפורש את com.oculus.permission.USE_SCENE ו-horizonos.permission.USE_ANCHOR_API עבור עוגנים מרחביים. פספסתם אחד — התכונה נכשלת בשקט, ללא שגיאות לוג אלא אם תפעילו verbose ב-quest_categories.
בנפרד, supported_input_devices ו-adb ב-apksigner (חלק מחבילת Horizon Store) הם קריטיים. קטגוריה שגויה או רשימת מכשירים חסרה יגרמו לכשל אוטומטי באימות. Meta בודקת שה-manifest תואם לתכונות המוצהרות.
תהליך בניית release
אנו עובדים דרך Oculus Developer Hub או ישירות משורת הפקודה עם launcherTemplate.gradle ו-mainTemplate.gradle מ-Android SDK Build Tools. עבור פרויקטים של Unity, אנו משתמשים ב-Gradle wrapper עם הגדרות ב-keytool ו--keyalg RSA -keysize 2048 -validity 10000.
שלבים מרכזיים ל-build שחרור תקין:
-
צרו keystore דרך
target-api-levelעם הפרמטריםapksigner verify --verbose --print-certs app-release.apk. שמרו אותו בנפרד מה-repository; שמרו את SHA-1 ו-SHA-256 בכספת פרויקט מאובטחת. ב-Unity: Player Settings → Publishing Settings → Use Custom Keystore. -
הגדירו
adb install -r app-release.apkל-32 ומעלה עבור הגשות חדשות (דרישה עדכנית — בדקו את תיעוד Horizon OS כי Meta מעלה מעת לעת את המינימום). -
לפני ההגשה, אמתו את החתימה:
required_feature. ודאו ששרשרת התעודה נכונה ושה-fingerprint תואם לזה הרשום ב-Dashboard. -
בדקו את ה-build החתום על מכשיר:
PASSTHROUGH. הסירו תחילה את גרסת ה-debug לחלוטין, אחרת המערכת עלולה לאסוף אישורים ישנים.
מאפיינים ספציפיים לערוצי הפצה שונים
Meta Quest Store כולל מספר ערוצים: App Lab (בודקים מוקדמים ללא סקירה מלאה), Horizon Store (שחרור ציבורי עם סקירה מלאה), ו-SideQuest / sideloading לבדיקות פנימיות.
עבור App Lab ו-Horizon Store, דרישות החתימה זהות — ההבדל היחיד הוא תהליך הסקירה. Sideloading יכול להשתמש ב-keystore debug, אך זה אינו תהליך שחרור.
אם הפרויקט משתמש ב-Passthrough API או ב-Mixed Reality Utility Kit (MRUK), הוסיפו סעיף required_feature עם PASSTHROUGH ב-manifest.json. בלעדיו, האפליקציה לא תרוץ על מכשירים עם passthrough מושבת.
| סוג Build | Keystore | Target API | בדיקת Entitlement |
|---|---|---|---|
| Debug / Dev Mode | Debug keystore | כל | אופציונלי |
| App Lab | Release keystore | ≥ 32 | חובה |
| Horizon Store | Release keystore | ≥ 32 | חובה + סקירת Meta |
כיצד עובדת ההתקשרות
אנו מקבלים גישה ל-Horizon Developer Dashboard של הארגון או עובדים דרך App ID שסופק. אנו בודקים את ה-manifest הנוכחי ואת תצורת Gradle. אנו מקימים תשתית keystore אם היא חסרה. לאחר מכן: build, חתימה, בדיקת מכשיר ואריזה להגשה.
אם הפרויקט פורסם בעבר ודורש עדכון, אנו בודקים תאימות גרסת keystore ו-versionCode (Meta דוחה חבילות עם versionCode ≤ הקודם).
מה כלול בעבודה
- בדיקת manifest ותצורת build קיימים
- יצירה והגדרה של release keystore (עם הגנה וגיבוי)
- הגדרת AndroidManifest.xml ו-manifest.json לפי דרישות Meta
- Build, חתימה ובדיקת מכשיר
- אריזה להגשה (App Lab / Horizon Store)
- תיעוד התהליך ואישורי גישה
- תמיכה בדחיית סקירה (איטרציה אחת)
למה להפקיד בידינו את ה-build שלכם?
יש לנו מעל 7 שנות ניסיון עם פרויקטי VR/AR ב-Unity ו-Unreal Engine. הוצאנו מעל 15 אפליקציות ב-Meta Quest Store. אנו מכירים את כל המלכודות האופייניות — מ-entitlements חסרים ועד קטגוריות שגויות ב-manifest.json. אנו מבטיחים שה-APK החתום יעבור את האימות האוטומטי של Meta, בתנאי שה-manifest מצידכם תקין.
ציר זמן: הקמה מאפס — 1-2 ימי עבודה. אם הפרויקט כבר קיים עם manifest תקין ורק תיקון חתימה והגשה נדרש — כמה שעות. זמן איטרציית דחייה תלוי בסיבה.
נעריך את הפרויקט שלכם — צרו קשר (פשוט כתבו, טקסט רגיל) ונכין תוכנית עבודה ועלות מדויקת. סוהר עם אחריות למעבר סקירה.





