iOS के लिए Places SDK टूल डाउनलोड करने, अपने ऐप्लिकेशन में लाइब्रेरी और इसकी डिपेंडेंसी जोड़ने के लिए, और मुफ़्त में एपीआई कुंजी पाने के लिए इस गाइड में दिए गए तरीके अपनाएं.
हर रिलीज़ के लिए रिलीज़ नोट उपलब्ध होते हैं.
पहला चरण: Xcode का सबसे नया वर्शन डाउनलोड करना
iOS के लिए Places SDK टूल का इस्तेमाल करके प्रोजेक्ट बनाने के लिए, आपको इनकी ज़रूरत होगी:
दूसरा चरण: SDK टूल इंस्टॉल करना
किसी नए प्रोजेक्ट में एपीआई इंस्टॉल करने के लिए, यह तरीका अपनाएं:Cocoapods का इस्तेमाल करें
iOS के लिए Places SDK टूल, CocoaPod पॉड, Google Places के तौर पर उपलब्ध है. इसमें, सभी जगहों की जानकारी देने वाली सुविधा शामिल होती है.
CocoaPods, Swift और Objective-C Cocoa प्रोजेक्ट के लिए एक ओपन सोर्स डिपेंडेंसी मैनेजर है. अगर आपके पास पहले से CocoaPods टूल नहीं है, तो टर्मिनल से नीचे दिया गया कमांड चलाकर, इसे macOS पर इंस्टॉल करें. ज़्यादा जानकारी के लिए, CocoaPods का इस्तेमाल शुरू करने की गाइड देखें.
sudo gem install cocoapods
iOS के लिए Places SDK टूल के लिए Podfile
बनाएं और
इसका इस्तेमाल करके SDK टूल और इसकी डिपेंडेंसी इंस्टॉल करें:
- अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो इसे अभी बनाएं और उसे अपनी स्थानीय मशीन पर सेव करें. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- अपनी प्रोजेक्ट डायरेक्ट्री में
Podfile
नाम की एक फ़ाइल बनाएं. यह फ़ाइल आपके प्रोजेक्ट पर निर्भर करती है. Podfile
में बदलाव करें और उनके वर्शन के साथ अपनी डिपेंडेंसी जोड़ें. यहां एक उदाहरण दिया गया है, जिससे आपके ऐप्लिकेशन के टारगेट का नाम औरGooglePlaces
पॉड का नाम पता चलता है:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
समय-समय परpod outdated
चलाते रहें, ताकि यह पता चल सके कि नया वर्शन कब उपलब्ध हो.Podfile
को सेव करें.कोई टर्मिनल खोलें और
Podfile
वाली डायरेक्ट्री पर जाएं:cd <path-to-project>
pod install
निर्देश चलाएं. ऐसा करने से,Podfile
में मौजूद एपीआई के साथ-साथ, वे सभी डिपेंडेंसी भी इंस्टॉल हो जाएंगी.pod install
Xcode को बंद करें और फिर अपने प्रोजेक्ट की
.xcworkspace
फ़ाइल को Xcode लॉन्च करने के लिए खोलें (दो बार क्लिक करें). इसके बाद से, आपको प्रोजेक्ट खोलने के लिए.xcworkspace
फ़ाइल का इस्तेमाल करना होगा.
किसी मौजूदा प्रोजेक्ट का एपीआई अपडेट करने के लिए, यह तरीका अपनाएं:
- कोई टर्मिनल खोलें और
Podfile
वाली प्रोजेक्ट डायरेक्ट्री पर जाएं. pod update
निर्देश चलाएं. ऐसा करने से,Podfile
में बताए गए सभी एपीआई, नए वर्शन पर अपडेट हो जाएंगे.
कार्थेज का इस्तेमाल करें
iOS के लिए Places SDK टूल, Cartaage के साथ इस्तेमाल करने के लिए उपलब्ध है, जो Swift और Objective-C Cocoa प्रोजेक्ट के लिए एक आसान, डीसेंट्रलाइज़्ड डिपेंडेंसी मैनेजर है.
- कार्थेज इंस्टॉल करें. कई तरीके अपनाए जा सकते हैं. इसलिए, सटीक निर्देशों के लिए Carthage README फ़ाइल देखें.
- अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो इसे अभी बनाएं और उसे अपनी स्थानीय मशीन पर सेव करें. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- अपनी प्रोजेक्ट डायरेक्ट्री में
Cartfile
नाम की एक फ़ाइल बनाएं. यह फ़ाइल, आपके प्रोजेक्ट पर निर्भर करती है. Cartfile
में बदलाव करें और उनके डिपेंडेंसी के साथ-साथ उनके वर्शन भी जोड़ें:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
समय-समय परcarthage outdated
का इस्तेमाल करते रहें, ताकि यह पता चल सके कि नया वर्शन कब उपलब्ध हो.Cartfile
को सेव करें.- टर्मिनल विंडो में, उस डायरेक्ट्री पर जाएं जिसमें
Cartfile
:
cd <path-to-project>
है carthage update
निर्देश चलाएं. ऐसा करने से,Cartfile
में मौजूद एपीआई के साथ-साथ, वे सभी डिपेंडेंसी भी इंस्टॉल हो जाएंगी.- फ़ाइंडर में, अपनी प्रोजेक्ट निर्देशिका में,
Carthage/Build/iOS
के अंतर्गत डाउनलोड की गई फ़्रेमवर्क फ़ाइलों पर जाएं. - यहां दिए गए बंडल को अपने प्रोजेक्ट में खींचें और छोड़ें (जब कहा जाए, तो ज़रूरी होने पर आइटम कॉपी करें चुनें:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
दायां क्लिक करें और Find Finder में दिखाएं चुनें. GooglePlaces.bundle
कोResources
फ़ोल्डर से खींचकर अपने प्रोजेक्ट में छोड़ें. जब कहा जाए, तब पक्का करें कि डेस्टिनेशन ग्रुप के फ़ोल्डर में आइटम कॉपी करें विकल्प नहीं चुना गया हो.- Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड के चरण टैब खोलें और लाइब्रेरी की लिंक बाइनरी में, नीचे दिए गए फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में जाकर, फ़िल्टर को बुनियादी से सभी में बदलें.
किसी मौजूदा प्रोजेक्ट का एपीआई अपडेट करने के लिए, यह तरीका अपनाएं:
- कोई टर्मिनल खोलें और
Cartfile
वाली प्रोजेक्ट डायरेक्ट्री पर जाएं. carthage update
निर्देश चलाएं. ऐसा करने से,Cartfile
में बताए गए सभी एपीआई, नए वर्शन पर अपडेट हो जाएंगे.
मैन्युअल तरीके से इंस्टॉल करें
इस गाइड में, अपने प्रोजेक्ट में Google Places फ़्रेमवर्क को मैन्युअल तौर पर जोड़ने और Xcode में अपनी बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है.
- SDK टूल की सोर्स फ़ाइलें डाउनलोड करें: Google Places-7.4.0
- सोर्स फ़ाइलें अनपैक करें.
- Xcode को लॉन्च करें और मौजूदा प्रोजेक्ट खोलें या नया प्रोजेक्ट बनाएं. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- अपने प्रोजेक्ट से पिछली रिलीज़ से, सभी Maps बंडल हटाएं.
- यहां दिए गए बंडल को अपने प्रोजेक्ट में खींचें और छोड़ें (जब कहा जाए, तो ज़रूरी होने पर आइटम कॉपी करें चुनें:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
दायां क्लिक करें और Find Finder में दिखाएं चुनें. GooglePlaces.bundle
कोResources
फ़ोल्डर से खींचकर अपने प्रोजेक्ट में छोड़ें. जब कहा जाए, तब पक्का करें कि डेस्टिनेशन ग्रुप के फ़ोल्डर में आइटम कॉपी करें विकल्प नहीं चुना गया हो.- Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड के चरण टैब खोलें और लाइब्रेरी की लिंक बाइनरी में, नीचे दिए गए फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में जाकर, फ़िल्टर को बुनियादी से सभी में बदलें.
XCFramework इंस्टॉल करें
XCFramework एक बाइनरी पैकेज है, जिसका इस्तेमाल आप iOS के लिए Places SDK टूल इंस्टॉल करने के लिए, M1 चिपसेट का इस्तेमाल करने वाली मशीनों सहित, कई प्लैटफ़ॉर्म पर कर सकते हैं. इस गाइड में, XCFramework को iOS के लिए, अपने प्रोजेक्ट में जोड़ने और Xcode में अपनी बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है.
कार्थेज के साथ
iOS के लिए Places SDK टूल, Cartaage के साथ इस्तेमाल के लिए उपलब्ध है, जो Swift और Objective-C Cocoa प्रोजेक्ट के लिए एक आसान, डीसेंट्रलाइज़्ड डिपेंडेंसी मैनेजर है.
- कार्थेज इंस्टॉल करें. कई तरीके अपनाए जा सकते हैं. इसलिए, सटीक निर्देशों के लिए Carthage README फ़ाइल देखें.
- अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो इसे अभी बनाएं और उसे अपनी स्थानीय मशीन पर सेव करें. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- अपनी प्रोजेक्ट डायरेक्ट्री में
Cartfile
नाम की एक फ़ाइल बनाएं. यह फ़ाइल, आपके प्रोजेक्ट पर निर्भर करती है. Cartfile
में बदलाव करें और उनके डिपेंडेंसी के साथ-साथ उनके वर्शन जोड़ें:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
Cartfile
को सेव करें.टर्मिनल विंडो में,
Cartfile
वाली डायरेक्ट्री पर जाएं:cd <path-to-project>
carthage update
निर्देश चलाएं. ऐसा करने से,Cartfile
में मौजूद एपीआई के साथ-साथ, वे सभी डिपेंडेंसी भी इंस्टॉल हो जाएंगी.- फ़ाइंडर में, अपनी प्रोजेक्ट निर्देशिका में,
Carthage/Build
के अंतर्गत डाउनलोड की गई फ़्रेमवर्क फ़ाइलों पर जाएं. - यहां दिए गए XCFramework को Frameworks, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में अपने प्रोजेक्ट में खींचें और छोड़ें. एम्बेड न करें को चुनना न भूलें:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- प्रोजेक्ट में
GooglePlaces.xcframework
दायां क्लिक करें और फ़ाइंडर में दिखाएं चुनें. ios-arm64/GooglePlaces.framework/Resources
फ़ोल्डर सेGooglePlaces.bundle
को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब आपसे कहा जाए, तब पक्का करें कि आइटम को डेस्टिनेशन ग्रुप के फ़ोल्डर में कॉपी करें विकल्प नहीं चुना गया हो.- Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड के चरण टैब खोलें और लाइब्रेरी की मदद से लिंक बाइनरी में जाकर, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में जाकर, फ़िल्टर को बुनियादी से सभी में बदलें.
मैन्युअल रूप से
इस गाइड में, iOS के लिए Maps SDK टूल को मैन्युअल तरीके से प्रोजेक्ट में जोड़ने और बिल्ड सेटिंग को Xcode में कॉन्फ़िगर करने का तरीका बताया गया है.
- SDK टूल की सोर्स फ़ाइलें डाउनलोड करें: Google Places-7.4.0.
- सोर्स फ़ाइलें अनपैक करें. XCFramework को ऐक्सेस करने के लिए Frameworks फ़ोल्डर पर नेविगेट करें.
- Xcode को लॉन्च करें और मौजूदा प्रोजेक्ट खोलें या नया प्रोजेक्ट बनाएं. अगर iOS आपके लिए नया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- यहां दिए गए XCFramework को Frameworks, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में अपने प्रोजेक्ट में खींचें और छोड़ें. एम्बेड न करें को चुनना न भूलें:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- प्रोजेक्ट में
GooglePlaces.xcframework
दायां क्लिक करें और फ़ाइंडर में दिखाएं चुनें. ios-arm64/GooglePlaces.framework/Resources
फ़ोल्डर सेGooglePlaces.bundle
को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब आपसे कहा जाए, तब पक्का करें कि आइटम को डेस्टिनेशन ग्रुप के फ़ोल्डर में कॉपी करें विकल्प नहीं चुना गया हो.- Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड के चरण टैब खोलें और लाइब्रेरी की मदद से लिंक बाइनरी में जाकर, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में जाकर, फ़िल्टर को बुनियादी से सभी में बदलें.
तीसरा चरण: अपने ऐप्लिकेशन में एपीआई कुंजी जोड़ना
यहां दिए गए उदाहरणों में, YOUR_API_KEY
को अपनी एपीआई कुंजी से बदलें.
Swift
AppDelegate.swift
में अपनी एपीआई कुंजी इस तरह जोड़ें:
- यह इंपोर्ट स्टेटमेंट जोड़ें:
import GooglePlaces
- YOUR_API_KEY को अपनी एपीआई कुंजी से बदलकर, इसे अपने
application(_:didFinishLaunchingWithOptions:)
तरीके में जोड़ें:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
AppDelegate.m
में अपनी एपीआई कुंजी इस तरह जोड़ें:
- यह इंपोर्ट स्टेटमेंट जोड़ें:
@import GooglePlaces;
- YOUR_API_KEY को अपनी एपीआई कुंजी से बदलकर, इसे अपने
application:didFinishLaunchingWithOptions:
तरीके में जोड़ें:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
चौथा चरण: कोड लिखना शुरू करें
कोड के ये नमूने मौजूदा जगह पाने का तरीका बताते हैं.
Swift
import GooglePlaces import UIKit class GetStartedViewController : UIViewController { // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables. @IBOutlet private var nameLabel: UILabel! @IBOutlet private var addressLabel: UILabel! private var placesClient: GMSPlacesClient! override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.shared() } // Add a UIButton in Interface Builder, and connect the action to this function. @IBAction func getCurrentPlace(_ sender: UIButton) { let placeFields: GMSPlaceField = [.name, .formattedAddress] placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in guard let strongSelf = self else { return } guard error == nil else { print("Current place error: \(error?.localizedDescription ?? "")") return } guard let place = placeLikelihoods?.first?.place else { strongSelf.nameLabel.text = "No current place" strongSelf.addressLabel.text = "" return } strongSelf.nameLabel.text = place.name strongSelf.addressLabel.text = place.formattedAddress } } }
Objective-C
#import "GetStartedViewController.h" @import GooglePlaces; @interface GetStartedViewController () // Add a pair of UILabels in Interface Builder and connect the outlets to these variables @property (weak, nonatomic) IBOutlet UILabel *nameLabel; @property (weak, nonatomic) IBOutlet UILabel *addressLabel; @end @implementation GetStartedViewController { GMSPlacesClient *_placesClient; } - (void)viewDidLoad { [super viewDidLoad]; _placesClient = [GMSPlacesClient sharedClient]; } // Add a pair of UILabels in Interface Builder and connect the outlets to these variables. - (IBAction)getCurrentPlace:(UIButton *)sender { GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress); __weak typeof(self) weakSelf = self; [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; } if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } GMSPlace *place = likelihoods.firstObject.place; if (place == nil) { strongSelf.nameLabel.text = @"No current place"; strongSelf.addressLabel.text = @""; return; } strongSelf.nameLabel.text = place.name; strongSelf.addressLabel.text = place.formattedAddress; }]; } @end
अगले चरण
प्रोजेक्ट कॉन्फ़िगर होने के बाद, ऐप्लिकेशन के नमूने देखे जा सकते हैं. आपको Cocoapods v1.6.1 इंस्टॉल करना होगा.