أبلغ المختبرين عن البنيات الجديدة

تتيح لك حزم Firebase App Distribution iOS وAndroid SDK الاختيارية عرض تنبيهات داخل التطبيق للمختبرين عندما تكون الإصدارات الجديدة من تطبيقك متاحة للتثبيت. يشرح هذا الدليل كيفية استخدام App Distribution iOS وAndroid SDK لإنشاء وتخصيص تنبيهات التصميم الجديدة للمختبرين لديك.

قبل ان تبدأ

إذا لم تكن قد قمت بذلك بالفعل، فأضف Firebase إلى مشروع iOS الخاص بك .

الخطوة 1 : تمكين واجهة برمجة تطبيقات اختبار توزيع التطبيقات

  1. حدد مشروعك في وحدة تحكم Google Cloud .

  2. ضمن Firebase App Testers API ، انقر على تمكين .

الخطوة 2 : إضافة توزيع التطبيق إلى التطبيق الخاص بك

  1. افتح ملف Podfile الذي قمت بإنشائه للمشروع (أو قم بتشغيل pod init لإنشاء واحد)، ثم أضف السطر التالي داخل القسم الهدف:

    pod 'FirebaseAppDistribution'
  2. في دليل ملف podfile الخاص بك، قم بتشغيل pod install ثم افتح ملف .xcworkspace الذي تم إنشاؤه.

  3. قم باستيراد وحدة Firebase في بنية App أو UIApplicationDelegate :

    سويفت

    import FirebaseCore
    import FirebaseAppDistribution
    

    ج موضوعية

    @import FirebaseCore;
    @import FirebaseAppDistribution;
    
  4. قم بتكوين مثيل FirebaseApp مشترك في طريقة application(_:didFinishLaunchingWithOptions:) :

    سويفت

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    ج موضوعية

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  5. إذا تم تعطيل swizzling، فقم بتمرير أي عناوين URL مفتوحة إلى App Distribution SDK في تنفيذ application(_:open:options:) :

    سويفت

    func application(_ app: UIApplication, 
                     open url: URL,
                     options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
       if AppDistribution.appDistribution().application(application, open: url, options: options) {
          return true
       }
    
       // Handle other non-Firebase URLs here.
    
       return false
    }
    

    ج موضوعية

    - (BOOL)application:(UIApplication *)app 
                openURL:(NSURL *)url 
                options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
       if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) {
          return YES;
       }
    
       // Handle other non-Firebase URLs here.
    
       return NO;
    }
    
  6. وأخيرًا، أعد ترجمة تطبيقك.

الخطوة 3 : تكوين التنبيهات داخل التطبيق

توفر App Distribution SDK طريقتين لإعداد تنبيهات إنشاء داخل التطبيق للمختبرين: تكوين التنبيه الأساسي، الذي يأتي مع تحديث التطبيق المدمج مسبقًا ومربعات حوار تسجيل الدخول لعرضها على المختبرين، وتكوين التنبيه المتقدم، الذي يسمح لك لتخصيص واجهة المستخدم الخاصة بك. نوصي أولاً باستخدام تكوين التنبيه الأساسي إذا كنت جديدًا على App Distribution SDK.

التكوين الأساسي

استخدم checkForUpdate لعرض مربع حوار تنبيهات التمكين المُعد مسبقًا للمختبرين الذين لم يقوموا بتمكين التنبيهات بعد، ثم تحقق من توفر إصدار جديد. عند استدعائها، تقوم الطريقة بتفعيل التسلسل التالي:

  1. يتحقق مما إذا كان أحد المختبرين قد قام بتمكين التنبيهات من خلال مطالبتهم بتسجيل الدخول إلى App Distribution باستخدام حساب Google الخاص بهم.

  2. إذا لم يقم المختبر بتمكين التنبيهات بعد، فسيتم عرض مربع حوار تم إنشاؤه مسبقًا.

    يعد تمكين التنبيهات عملية تتم لمرة واحدة على جهاز الاختبار وتستمر عبر تحديثات تطبيقك. تظل التنبيهات ممكنة على جهاز الاختبار حتى يتم إلغاء تثبيت التطبيق، أو حتى يتم استدعاء أسلوب signOutTester . راجع الوثائق المرجعية للطريقة ( Swift أو Objective-C ) لمزيد من المعلومات.

  3. التحقق من الإصدارات المتوفرة حديثًا لكي يقوم المُختبر بتثبيتها.

يمكنك استدعاء checkForUpdate() في أي وقت في تطبيقك. على سبيل المثال، يمكنك مطالبة المختبرين بتثبيت الإصدارات المتوفرة حديثًا عند بدء التشغيل من خلال تضمين checkForUpdate() في onAppear(perform:) في العرض الجذر لتطبيقك.

يتحقق المثال التالي مما إذا كان المُختبر قد قام بتمكين التنبيهات ولديه حق الوصول إلى إصدار جديد أم لا، وإذا كان الأمر كذلك، فإنه يعرض مربع حوار عندما يكون الإصدار متاحًا للتثبيت:

سويفت

ملاحظة: هذا المنتج غير متوفر على أنظمة macOS أو Mac Catalyst أو tvOS أو watchOS.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  if error != nil {
      // Handle error
      return
  }

  guard let release = release else {
    return
  }

  // Customize your alerts here.
  let title = "New Version Available"
  let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
  let uialert = UIAlertController(title: title,message: message, preferredStyle: .alert)

  uialert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
    _ in
    UIApplication.shared.open(release.downloadURL)
  })
  uialert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
    _ in
  })

  // self should be a UIViewController.
  self.present(uialert, animated: true, completion: nil)
})

ج موضوعية

ملاحظة: هذا المنتج غير متوفر على أنظمة macOS أو Mac Catalyst أو tvOS أو watchOS.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    // Handle error
    return;
  }

  if (release) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
      [[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
    }];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
    [alert addAction:updateAction];
    [alert addAction:cancelAction];
    [self presentViewController:alert animated:YES completion:nil];
  }
}];

التكوين المتقدم

تمنحك الطريقتان signInTester() و isTesterSignedIn مزيدًا من المرونة في تخصيص تجربة تسجيل الدخول الخاصة بالمختبر، حتى تتمكن من مطابقة شكل تطبيقك ومظهره بشكل أفضل.

يتحقق المثال التالي مما إذا كان المختبر قد قام بالفعل بتسجيل الدخول إلى حساب اختبار Firebase App Distribution، بحيث يمكنك اختيار عرض واجهة مستخدم تسجيل الدخول الخاصة بك فقط للمختبرين الذين لم يسجلوا الدخول بعد. بعد تسجيل دخول المختبر، يمكنك بعد ذلك اتصل بـ checkForUpdate() للتحقق مما إذا كان لدى المُختبر حق الوصول إلى البنية الجديدة.

سويفت

ملاحظة: هذا المنتج غير متوفر على أنظمة macOS أو Mac Catalyst أو tvOS أو watchOS.
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().signInTester (completion: { error in
    // completion block for signInTester
     if (error != nil) {
       // handle failed sign in
      return
     }
    // handle successful sign in
  })
}

// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
      // completion block for check for update
  })
}

ج موضوعية

ملاحظة: هذا المنتج غير متوفر على أنظمة macOS أو Mac Catalyst أو tvOS أو watchOS.
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
    signInTesterWithCompletion:^(NSError *_Nullable error) {
      // completion block for signInTester
     if (error) {
       // handle failed sign in
       return;
     }
      // handle successful sign in
  }];
}

// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
        checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                       NSError *_Nullable error) {
     // completion block for check for update
  }];
}

للحصول على معلومات حول الطرق الإضافية، بما في ذلك signOutTester() ، راجع الوثائق المرجعية لتوزيع التطبيقات لـ Swift و Objective-C .

الخطوة 4 : بناء واختبار التنفيذ الخاص بك

وأخيرًا، أنشئ تطبيقك واختبر تنفيذك من خلال توزيع الإصدار على المختبرين باستخدام وحدة تحكم Firebase.

تفضل بزيارة دليل استكشاف أخطاء توزيع التطبيقات وإصلاحها للحصول على مساعدة بشأن المشكلات الشائعة، مثل:

  • لا يتلقى المختبر تنبيهات داخل التطبيق
  • تتم مطالبة المختبر بتسجيل الدخول إلى Google أكثر من مرة