אימות באמצעות חשבון שירות


חשבונות שירות שימושיים להגדרה של App Distribution בסביבת CI. אימות באמצעות חשבון שירות מאפשר לכם להשתמש בספריות לקוח (למשל, Firebase CLI,‏ Gradle ו-fastlane) כדי להפיץ את הגרסאות שלכם. כשמשתמשים בחשבון שירות לצורך אימות, Firebase משתמש בפרטי כניסה שמוגדרים כברירת מחדל לאפליקציה (ADC) כדי לאתר את פרטי הכניסה של האפליקציה. אתם יכולים לספק את פרטי הכניסה האלה על ידי הגדרת משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS או על ידי ציון הנתיב של המפתח לחשבון השירות בקוד של האפליקציה.

  1. פותחים את מסוף Google Cloud ובוחרים את הפרויקט.
  2. לוחצים על Create Service Account ומזינים את פרטי חשבון השירות.
  3. לוחצים על יצירה והמשך.
  4. מוסיפים את התפקיד Firebase App Distribution אדמין ולוחצים על סיום.
  5. יוצרים מפתח JSON פרטי ומעבירים אותו למיקום שאפשר לגשת אליו בסביבת הבנייה. חשוב לשמור את הקובץ הזה במקום בטוח, כי הוא מעניק גישת אדמין ל-App Distribution בפרויקט Firebase.
  6. אם יצרתם את האפליקציה אחרי 20 בספטמבר 2019, אפשר לדלג על השלב הזה: במסוף ממשקי ה-API של Google, מפעילים את Firebase App Distribution API. כשמוצגת בקשה, בוחרים את הפרויקט עם אותו שם כמו הפרויקט ב-Firebase.

  7. מזינים את פרטי הכניסה לחשבון השירות:

    • ל-Gradle בלבד: בקובץ build.gradle, מגדירים את המאפיין serviceCredentialsFile לקובץ ה-JSON של המפתח הפרטי:

      android {
      
          // ...
      
          buildTypes {
              release {
                  firebaseAppDistribution {
                      serviceCredentialsFile="/absolute/path/to/credentials/file.json"
                      releaseNotesFile="/path/to/releasenotes.txt"
                      testers="ali@example.com, bri@example.com, cal@example.com"
                  }
              }
          }
      
          // ...
      
      }
      

      אפשר גם לספק את פרטי הכניסה לקוד של האפליקציה. כדי לעשות זאת, פועלים לפי השלב הבא.

    • ב-CLI‏ Firebase, ב-fastlane או ב-Gradle: מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS לנתיב של קובץ ה-JSON של המפתח הפרטי:

      export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json