ফায়ারবেস অ্যাপ ডিস্ট্রিবিউশন এসডিকে, যা ব্যবহারের জন্য alচ্ছিক, আপনাকে যখন অ্যাপ্লিকেশনটির নতুন বিল্ডগুলি ইনস্টল করার জন্য উপলব্ধ থাকে তখন আপনাকে পরীক্ষকগণকে ইন-অ্যাপ্লিকেশন সতর্কতা প্রদর্শন করতে দেয়। আপনার গাইডের জন্য নতুন বিল্ড সতর্কতা তৈরি করতে এবং কাস্টমাইজ করতে অ্যাপ ডিস্ট্রিবিউশন এসডিকে কীভাবে ব্যবহার করবেন তা এই গাইড ব্যাখ্যা করে।
তুমি শুরু করার আগে
আপনার যদি ইতিমধ্যে না থাকে তবে আপনার আইওএস প্রকল্পে ফায়ারবেস যুক্ত করুন ।
পদক্ষেপ 1 : অ্যাপ বিতরণ পরীক্ষক এপিআই সক্ষম করুন
গুগল ক্লাউড কনসোলে আপনার প্রকল্প নির্বাচন করুন।
ফায়ারবেস অ্যাপ পরীক্ষক এপিআই এর অধীনে সক্ষম ক্লিক করুন।
পদক্ষেপ 2 : আপনার অ্যাপে অ্যাপ বিতরণ যুক্ত করুন
আমরা ফায়ারবেস লাইব্রেরি ইনস্টল করতে কোকোপড ব্যবহার করার পরামর্শ দিই । তবে, আপনি যদি কোকোপডগুলি ব্যবহার না করেন তবে আপনি সরাসরি এসডিকে ফ্রেমওয়ার্কগুলি সংহত করতে পারেন।
আপনি প্রকল্পের জন্য তৈরি পডফিলটি খুলুন (বা একটি তৈরি করার জন্য
pod init
করুন), তারপরে লক্ষ্য বিভাগের মধ্যে নিম্নলিখিত লাইনটি যুক্ত করুন:pod 'Firebase/AppDistribution'
আপনার পোডফিলের ডিরেক্টরিতে,
pod install
চালান, তারপরে তৈরি.xcworkspace
ফাইলটি খুলুন।আপনার গুগল অ্যাপ্লিকেশন আইডি এনকোড করুন ( কেবলমাত্র আইওএস সংস্করণ 9 এবং 10 এর জন্য প্রয়োজনীয় ):
আপনার গুগল অ্যাপ আইডি এনকোড করুন
appdistribution-<encoded-google-app-id>
যোগappdistribution-<encoded-google-app-id>
ইউআরএল স্কিমটি আপনারInfo.plist file
স্নিপেটInfo.plist file
(এক্সকোডে ইউআরএল স্কিম কীভাবে যুক্ত করবেন তার নির্দেশাবলীর জন্য অ্যাপলের ডকুমেন্টেশন দেখুন ):<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>
তারপরে, কলোনগুলি (:) ড্যাশ (-) দিয়ে প্রতিস্থাপন করে আপনার গুগল অ্যাপ আইডি এনকোড করুন। নোট করুন যে আপনার গুগল অ্যাপ্লিকেশন আইডিটি আপনার গুগল
GoogleService-Info.plist
ফাইলটিতে অবস্থিত। উদাহরণস্বরূপ, যদি আপনার গুগল অ্যাপ আইডি হয়:7:77777777777:ios:123456789
আপনার এনকোডযুক্ত গুগল অ্যাপ আইডিটি হ'ল:
7-77777777777-ios-123456789
আপনার
UIApplicationDelegate
মডিউলটি আমদানি করুন:সুইফট
import Firebase
উদ্দেশ্য গ
@import Firebase;
কনফিগার একটি
FirebaseApp
, উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যেapplication:didFinishLaunchingWithOptions:
পদ্ধতি:সুইফট
// Use Firebase library to configure APIs FirebaseApp.configure()
উদ্দেশ্য গ
// Use Firebase library to configure APIs [FIRApp configure];
শেষ পর্যন্ত, আপনার অ্যাপ্লিকেশনটি পুনরায় সংকলন করুন।
পদক্ষেপ 3 : অ্যাপ্লিকেশন সতর্কতা কনফিগার করুন
অ্যাপ্লিকেশন ডিস্ট্রিবিউশন এসডিকে আপনার পরীক্ষকদের জন্য অ্যাপ-বিল্ড সতর্কতা স্থাপনের দুটি উপায় সরবরাহ করে: একটি প্রাথমিক সতর্কতা কনফিগারেশন, যা পরীক্ষার্থীদের প্রদর্শিত হওয়ার জন্য একটি প্রাক-বিল্ট সাইন-ইন কথোপকথন এবং একটি উন্নত সতর্কতা কনফিগারেশন সহ আসে যা আপনাকে অনুমতি দেয় আপনার নিজস্ব ইউজার ইন্টারফেস (ইউআই) কাস্টমাইজ করুন। আপনি যদি এসডিকে ব্যবহার করতে নতুন হন তবে আমরা প্রথমে প্রাথমিক সতর্কতা কনফিগারেশনটি ব্যবহার করার পরামর্শ দিই।
বেসিক কনফিগারেশন
যে checkForUpdate
এখনও সতর্কতা সক্ষম করেনি তাদের প্রাক বিল্ট সক্ষম সক্ষম সতর্কতা সংলাপ প্রদর্শন করতে checkForUpdate
ব্যবহার করুন এবং তারপরে একটি নতুন বিল্ড উপলব্ধ কিনা তা পরীক্ষা করুন। যখন ডাকা হয়, পদ্ধতিটি নীচের ক্রমটি কার্যকর করে:
কোনও পরীক্ষক তাদের গুগল অ্যাকাউন্টের সাথে অ্যাপ বিতরণে সাইন ইন করার অনুরোধ জানিয়ে সতর্কতা সক্ষম করেছে কিনা তা পরীক্ষা করে।
যদি পরীক্ষক এখনও সতর্কতাগুলি সক্ষম না করে থাকে তবে একটি পূর্ব-নির্মিত সংলাপটি প্রদর্শন করে। সতর্কতা সক্ষম করা টেস্ট ডিভাইসে এককালীন প্রক্রিয়া এবং আপনার অ্যাপ্লিকেশনটির আপডেটগুলি জুড়ে থাকে। একবার সক্ষম হয়ে গেলে, অ্যাপ্লিকেশনটি আনইনস্টল না করা পর্যন্ত, বা
signOutTester
পদ্ধতি নাsignOutTester
হওয়া পর্যন্ত (এই উন্নত কনফিগারেশন পদ্ধতির আরও তথ্যের জন্য, সুইফট এবং অবজেক্টিভ-সি এর জন্য অ্যাপ্লিকেশন বিতরণ রেফারেন্স ডকুমেন্টেশন দেখুন) অবধি সতর্কতা ডিভাইসে সক্রিয় থাকে।পরীক্ষক ইনস্টল করার জন্য নতুন উপলব্ধ বিল্ডগুলির জন্য চেক।
উদাহরণস্বরূপ, নিম্নলিখিত কোডটি পরীক্ষকটির সতর্কতা সক্ষম হয়েছে এবং একটি নতুন বিল্ডে অ্যাক্সেস রয়েছে তা পরীক্ষা করে:
সুইফট
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
})
উদ্দেশ্য গ
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
}];
নোট করুন যে আপনি এই অ্যাপ্লিকেশনটির যে কোনও সময়ে এই পদ্ধতিটি অন্তর্ভুক্ত করতে পারেন। উদাহরণস্বরূপ, যদি আপনি স্টার্টআপে সদ্য প্রাপ্তিসাধ্য তৈরী করে অন্তর্ভুক্ত করে ইনস্টল করতে আপনার পরীক্ষকদের সূচিত করে 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
আপনাকে আপনার পরীক্ষকের সাইন ইন অভিজ্ঞতা কাস্টমাইজ করার জন্য আরও নমনীয়তা দেয় যাতে এটি আপনার অ্যাপ্লিকেশনটির চেহারা এবং অনুভূতির সাথে আরও ভাল মেলে।
নিম্নলিখিত উদাহরণটি পরীক্ষকরা ইতিমধ্যে তাদের ফায়ারবেস অ্যাপ বিতরণ পরীক্ষক অ্যাকাউন্টে সাইন ইন করেছে কিনা তা যাচাই করে, তাই আপনি এখনও সাইন ইন না করে কেবল সেই পরীক্ষকদের জন্য আপনার সাইন ইন ইউআই প্রদর্শন করতে পারেন the পরীক্ষক সাইন ইন করার পরে, আপনি তখন পরীক্ষককে নতুন বিল্ডে অ্যাক্সেস রয়েছে কিনা তা পরীক্ষা করতে 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 : আপনার বাস্তবায়ন তৈরি করুন এবং পরীক্ষা করুন
অবশেষে, ফায়ারবেস কনসোল ব্যবহার করে বিল্ডকে পরীক্ষকদের বিতরণ করে আপনার অ্যাপ্লিকেশনটি তৈরি করুন এবং আপনার প্রয়োগটি পরীক্ষা করুন।
সাধারণ সমস্যাগুলির সাহায্যের জন্য অ্যাপ বন্টন সমস্যা সমাধানের গাইড দেখুন :
- পরীক্ষক ইন-অ্যাপ্লিকেশন সতর্কতা গ্রহণ করছেন না
- পরীক্ষককে গুগলে একাধিকবার সাইন ইন করার জন্য অনুরোধ করা হচ্ছে