Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

অ্যাপ বিতরণ এসডিকে দিয়ে অ্যাপ-এ নতুন বিল্ড সতর্কতা সেট আপ করুন

Fireচ্ছিক ফায়ারবেস অ্যাপ ডিস্ট্রিবিউশন এসডিকে যখন আপনার অ্যাপের নতুন বিল্ড ইনস্টল করার জন্য উপলব্ধ থাকে তখন আপনি আপনার পরীক্ষকদের ইন-অ্যাপ সতর্কতা প্রদর্শন করতে পারেন। আপনার পরীক্ষকদের জন্য নতুন বিল্ড সতর্কতা তৈরি এবং কাস্টমাইজ করার জন্য অ্যাপ ডিস্ট্রিবিউশন এসডিকে কীভাবে ব্যবহার করবেন তা এই গাইড ব্যাখ্যা করে।

তুমি শুরু করার আগে

যদি আপনি এমনটি না থাকে, তাহলে আপনার iOS প্রকল্পে Firebase যোগ

ধাপ 1: অ্যাপ বিতরণ পরীক্ষক API সক্ষম

  1. আপনার প্রকল্প নির্বাচন করুন Google ক্লাউড কনসোলে

  2. Firebase অ্যাপ পরীক্ষকগণ এপিআই অধীনে, ক্লিক করে সক্ষম করুন।

পদক্ষেপ 2: আপনার অ্যাপ্লিকেশানে অ্যাপ বিতরণ যোগ করুন

  1. Podfile আপনি প্রকল্পের জন্য নির্মিত খুলুন (অথবা রান pod init একটি তৈরি করতে), তারপর লক্ষ্য অধ্যায় ভিতরে নিম্নলিখিত পংক্তি যোগ করুন:

    pod 'Firebase/AppDistribution'
  2. আপনার podfile নির্দেশিকা ইন, রান pod install , তারপর নির্মিত খুলতে .xcworkspace ফাইল।

  3. এনকোড আপনার Google অ্যাপ্লিকেশান আইডি (শুধুমাত্র iOS সংস্করণ 9 ও 10 জন্য প্রয়োজন):

    আপনার গুগল অ্যাপ আইডি এনকোড করুন

    যোগ appdistribution-<encoded-google-app-id> আপনার স্নিপেট অন্তর্ভুক্ত করে URL স্কিম Info.plist file (পড়ুন অ্যাপলের ডকুমেন্টেশন কিভাবে Xcode URL টি প্রকল্প যোগ করার জন্য নির্দেশাবলীর জন্য):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    তারপরে, আপনার Google অ্যাপ আইডি এনকোড করুন কোলন (:) ড্যাশ (-) দিয়ে প্রতিস্থাপন করে। মনে রাখবেন যে আপনার Google অ্যাপ্লিকেশান আইডি আপনার অবস্থিত GoogleService-Info.plist ফাইল। উদাহরণস্বরূপ, যদি আপনার Google অ্যাপ আইডি হয়:

    7:77777777777:ios:123456789

    আপনার এনকোডেড গুগল অ্যাপ আইডি হল:

    7-77777777777-ios-123456789
  4. আপনার Firebase মডিউল আমদানি UIApplicationDelegate :

    সুইফট

    import Firebase
    

    উদ্দেশ্য গ

    @import Firebase;
    
  5. কনফিগার একটি FirebaseApp , উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যে application:didFinishLaunchingWithOptions: পদ্ধতি:

    সুইফট

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

    উদ্দেশ্য গ

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  6. অবশেষে, আপনার অ্যাপ্লিকেশন পুনরায় কম্পাইল করুন।

ধাপ 3: কনফিগার অ্যাপ-মধ্যস্থ সতর্কতা

অ্যাপ ডিস্ট্রিবিউশন SDK আপনার পরীক্ষকদের জন্য ইন-অ্যাপ বিল্ড অ্যালার্ট সেট আপ করার দুটি উপায় প্রদান করে: একটি মৌলিক সতর্কতা কনফিগারেশন, যা পরীক্ষকদের দেখানোর জন্য একটি প্রাক-অন্তর্নির্মিত সাইন-ইন ডায়ালগ এবং একটি উন্নত সতর্কতা কনফিগারেশন, যা আপনাকে অনুমতি দেয় আপনার নিজস্ব ইউজার ইন্টারফেস (UI) কাস্টমাইজ করুন। আপনি যদি অ্যাপ ডিস্ট্রিবিউশন এসডিকে নতুন হন তবে আমরা প্রথমে মৌলিক সতর্কতা কনফিগারেশন ব্যবহার করার পরামর্শ দিই।

বেসিক কনফিগারেশন

ব্যবহারের checkForUpdate প্রদর্শন করতে একটি প্রাক বিল্ট পরীক্ষকগণ যারা এখনও সক্ষম করি নি সতর্কতা সতর্কতা সংলাপ সক্ষম, এবং তারপর পরীক্ষা যদি একটি নতুন বিল্ড পাওয়া যায়। যখন বলা হয়, পদ্ধতিটি নিম্নলিখিত ক্রমটি প্রয়োগ করে:

  1. একজন পরীক্ষক তাদের Google অ্যাকাউন্ট দিয়ে অ্যাপ বিতরণে সাইন ইন করার অনুরোধ জানিয়ে সতর্কতা সক্ষম করেছে কিনা তা পরীক্ষা করে।

  2. যদি পরীক্ষক এখনও সতর্কতা সক্ষম না করে থাকেন, তাহলে একটি পূর্বনির্ধারিত সংলাপ প্রদর্শন করে।

    সতর্কীকরণ সক্ষম করা পরীক্ষা ডিভাইসে এককালীন প্রক্রিয়া এবং আপনার অ্যাপের আপডেট জুড়ে থাকে। যতক্ষণ না পারেন অ্যাপটি আনইনস্টল করা হয় সতর্কতা পরীক্ষা ডিভাইস সক্রিয় থাকা উচিত অথবা যতক্ষণ না signOutTester পদ্ধতি বলা হয়। পদ্ধতি এর রেফারেন্স ডকুমেন্টেশন (দেখুন সুইফট বা উদ্দেশ্য সি আরও তথ্যের জন্য)।

  3. পরীক্ষক ইনস্টল করার জন্য নতুন উপলব্ধ বিল্ডগুলির জন্য চেক।

আপনি অন্তর্ভুক্ত করতে পারে checkForUpdate আপনার অ্যাপে যেকোনো সময়ে। উদাহরণস্বরূপ, যদি আপনি স্টার্টআপে সদ্য প্রাপ্তিসাধ্য তৈরী করে অন্তর্ভুক্ত করে ইনস্টল করতে আপনার পরীক্ষকদের সূচিত করে checkForUpdate মধ্যে viewDidAppear এর UIViewController

নিচের উদাহরণটি পরীক্ষা করে যে পরীক্ষক সতর্কতা সক্ষম করেছে কি না এবং একটি নতুন বিল্ডে অ্যাক্সেস আছে কি না, এবং যদি তা হয়, যখন বিল্ডটি ইনস্টল করার জন্য উপলব্ধ থাকে তখন একটি সংলাপ প্রদর্শন করে:

সুইফট

AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  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)
})

উদ্দেশ্য গ

[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];

    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 আপনি আরো নমনীয়তা, আপনার পরীক্ষার সাইন-ইন অভিজ্ঞতা কাস্টমাইজ তাই এটি ভাল আপনার অ্যাপ্লিকেশনের চেহারা এবং অনুভব মেলাতে পারে দেব।

নিচের উদাহরণটি পরীক্ষা করে যে পরীক্ষক ইতিমধ্যে তাদের ফায়ারবেস অ্যাপ বিতরণ পরীক্ষক অ্যাকাউন্টে সাইন ইন করেছে কিনা, তাই আপনি কেবলমাত্র সেই পরীক্ষকদের জন্য আপনার সাইন-ইন UI প্রদর্শন করতে বেছে নিতে পারেন যারা এখনও সাইন ইন করেননি। পরীক্ষক সাইন ইন করার পরে, আপনি তারপর কল checkForUpdate পরীক্ষক একটি নতুন বিল্ড অ্যাক্সেস আছে কিনা তা যাচাই করতে।

সুইফট

// 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
  })
}

উদ্দেশ্য গ

// 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 , জন্য অ্যাপ বিতরণ রেফারেন্স ডকুমেন্টেশান দেখুন সুইফট এবং উদ্দেশ্য সি

ধাপ 4: বিল্ড এবং পরীক্ষা আপনার বাস্তবায়ন

অবশেষে, আপনার অ্যাপ্লিকেশন নির্মাণ ও করে আপনার বাস্তবায়ন পরীক্ষা বিল্ড বিতরণ Firebase কনসোল ব্যবহার পরীক্ষকদের কাছে।

পরিদর্শন অ্যাপ বিতরণ সমস্যাসমাধান নির্দেশিকা যেমন সাধারণ বিষয়, সাহায্যের জন্য:

  • পরীক্ষক ইন-অ্যাপ সতর্কতা পাচ্ছেন না
  • পরীক্ষককে একাধিকবার গুগলে সাইন ইন করার জন্য অনুরোধ করা হচ্ছে