Catch up on everything we announced at this year's Firebase Summit. Learn more

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

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

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

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

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

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

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

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

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode ক্ষেত্রে File খোলা আপনার অ্যাপ প্রকল্পের, নেভিগেট সঙ্গে> সুইফট প্যাকেজগুলি> প্যাকেজ নির্ভরতা যুক্ত করো।
  2. অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK সংগ্রহস্থল যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. অ্যাপ ডিস্ট্রিবিউশন লাইব্রেরি বেছে নিন।
  5. শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে পটভূমিতে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।

এর পরে, কয়েকটি কনফিগারেশন পদক্ষেপগুলি সম্পাদন করুন:

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

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

    যোগ 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

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

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

    সুইফট

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS বা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।

    import Firebase
    

    উদ্দেশ্য গ

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS বা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।

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

    সুইফট

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS বা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।

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

    উদ্দেশ্য গ

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS বা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।

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

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

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

মৌলিক কনফিগারেশন

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

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

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

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

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

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

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

সুইফট

নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS বা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।
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)
})

উদ্দেশ্য গ

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

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

সুইফট

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

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

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

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

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