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

ऐप डिस्ट्रीब्यूशन एसडीके के साथ इन-ऐप नए बिल्ड अलर्ट सेट करें

वैकल्पिक Firebase ऐप डिस्ट्रीब्यूशन एसडीके आपको अपने परीक्षकों को इन-ऐप अलर्ट प्रदर्शित करने देता है जब आपके ऐप के नए बिल्ड इंस्टॉल के लिए उपलब्ध होते हैं। यह मार्गदर्शिका बताती है कि अपने परीक्षकों के लिए नए बिल्ड अलर्ट बनाने और कस्टमाइज़ करने के लिए ऐप वितरण एसडीके का उपयोग कैसे करें।

शुरू करने से पहले

आप पहले से ही नहीं है, तो अपने 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 के लिए आवश्यक):

    अपनी Google ऐप आईडी एन्कोड करें

    जोड़े appdistribution-<encoded-google-app-id> अपने में स्निपेट शामिल द्वारा URL योजना Info.plist file (का उल्लेख एप्पल के प्रलेखन कैसे Xcode में यूआरएल स्कीम को जोड़ने के लिए पर निर्देश के लिए):

    <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
  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: कॉन्फ़िगर एप्लिकेशन के तहत अलर्ट

ऐप डिस्ट्रीब्यूशन एसडीके आपके परीक्षकों के लिए इन-ऐप बिल्ड अलर्ट सेट करने के दो तरीके प्रदान करता है: एक बुनियादी अलर्ट कॉन्फ़िगरेशन, जो परीक्षकों को प्रदर्शित करने के लिए एक पूर्व-निर्मित साइन-इन संवाद के साथ आता है, और एक उन्नत अलर्ट कॉन्फ़िगरेशन, जो आपको अनुमति देता है अपने खुद के यूजर इंटरफेस (यूआई) को अनुकूलित करें। यदि आप ऐप वितरण एसडीके के लिए नए हैं तो हम पहले बुनियादी अलर्ट कॉन्फ़िगरेशन का उपयोग करने की सलाह देते हैं।

बुनियादी विन्यास

उपयोग 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 आप और अधिक लचीलापन, अपने परीक्षक के साइन-इन अनुभव को कस्टमाइज़ तो यह बेहतर को अपने ऐप्लिकेशन के रंगरूप से मिलान कर सकते हैं।

निम्न उदाहरण जांचता है कि क्या परीक्षक ने पहले ही अपने फायरबेस ऐप वितरण परीक्षक खाते में साइन इन कर लिया है, इसलिए आप केवल उन परीक्षकों के लिए अपना साइन-इन यूआई प्रदर्शित करना चुन सकते हैं जिन्होंने अभी तक साइन इन नहीं किया है। परीक्षक के साइन इन करने के बाद, आप कर सकते हैं फोन 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 कंसोल का उपयोग परीक्षकों के लिए।

पर जाएँ अनुप्रयोग वितरण समस्या निवारण मार्गदर्शिका जैसे आम मुद्दों, साथ मदद के लिए:

  • परीक्षक को इन-ऐप अलर्ट नहीं मिल रहा है
  • परीक्षक को Google में एक से अधिक बार साइन इन करने के लिए प्रेरित किया जा रहा है