इस गाइड में दिए गए तरीके को अपनाकर, iOS के लिए Places SDK टूल डाउनलोड करें. इसकी मदद से लाइब्रेरी और इसकी डिपेंडेंसी अपने ऐप्लिकेशन में भी जोड़ी जा सकती हैं. साथ ही, एपीआई कुंजी का इस्तेमाल बिना किसी शुल्क के किया जा सकता है.
रिलीज़ नोट हर रिलीज़ के लिए उपलब्ध होते हैं.
पहला चरण: Xcode का नया वर्शन डाउनलोड करना
iOS के लिए Places SDK टूल का इस्तेमाल करके प्रोजेक्ट बनाने के लिए, आपको इनकी ज़रूरत होगी:
चरण 2: SDK टूल इंस्टॉल करना
किसी नए प्रोजेक्ट में एपीआई इंस्टॉल करने के लिए, यह तरीका अपनाएं:Cocoapods का इस्तेमाल करें
iOS के लिए Places SDK टूल, CocoaPod पॉड, Google Places के तौर पर उपलब्ध है. इस टूल में, जगहों की जानकारी से जुड़ी सभी सुविधाएं शामिल हैं.
CocoaPods, Swift और Objective-C कोको प्रोजेक्ट के लिए एक ओपन सोर्स डिपेंडेंसी मैनेजर है. अगर आपके पास 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, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.0.0' end
यह पक्का करने के लिए कि नया वर्शन हमेशा उपलब्ध रहे,pod outdated
को नियमित तौर पर चलाना न भूलें.Podfile
को सेव करें.कोई टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जिसमें
Podfile
है:cd <path-to-project>
pod install
निर्देश चलाएं. ऐसा करने से,Podfile
में बताए गए एपीआई और उनके डिपेंडेंसी भी इंस्टॉल हो जाएंगी.pod install
Xcode बंद करें और फिर Xcode लॉन्च करने के लिए, अपने प्रोजेक्ट की
.xcworkspace
फ़ाइल पर दो बार क्लिक करें. इसके बाद से, आपको प्रोजेक्ट खोलने के लिए.xcworkspace
फ़ाइल का इस्तेमाल करना होगा.
किसी मौजूदा प्रोजेक्ट का एपीआई अपडेट करने के लिए, यह तरीका अपनाएं:
- कोई टर्मिनल खोलें और
Podfile
वाली प्रोजेक्ट डायरेक्ट्री पर जाएं. pod update
निर्देश चलाएं. ऐसा करने से,Podfile
में बताए गए सभी एपीआई को नए वर्शन में अपडेट कर दिया जाएगा.
कार्टेज का इस्तेमाल करें
iOS के लिए, जगहें 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
में बताए गए एपीआई और उनके डिपेंडेंसी भी इंस्टॉल हो जाएंगी.- Finder में जाकर, अपनी प्रोजेक्ट डायरेक्ट्री में,
Carthage/Build/iOS
में जाकर, डाउनलोड की गई फ़्रेमवर्क फ़ाइलों पर जाएं. - नीचे दिए गए बंडल को अपने प्रोजेक्ट में खींचें और जब कहा जाए, तब आइटम की ज़रूरत होने पर कॉपी करें चुनें:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
का दायां क्लिक करें और Finder में दिखाएं चुनें. GooglePlaces.bundle
कोResources
फ़ोल्डर से खींचकर अपने प्रोजेक्ट में छोड़ें. जब कहा जाए, तब पक्का करें कि आइटम के फ़ोल्डर के फ़ोल्डर में आइटम कॉपी करें चुना नहीं गया हो.- प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड चरण टैब खोलें और लाइब्रेरी के साथ बाइनरी लिंक करें में, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में मौजूद फ़िल्टर को सामान्य से सभी में बदलें.
किसी मौजूदा प्रोजेक्ट का एपीआई अपडेट करने के लिए, यह तरीका अपनाएं:
- कोई टर्मिनल खोलें और
Cartfile
वाली प्रोजेक्ट डायरेक्ट्री पर जाएं. carthage update
निर्देश चलाएं. इससे,Cartfile
में बताए गए सभी एपीआई नए वर्शन में अपडेट हो जाएंगे.
मैन्युअल तरीके से इंस्टॉल करना
इस गाइड में, अपने प्रोजेक्ट में Google Places फ़्रेमवर्क को मैन्युअल तरीके से जोड़ने और Xcode में अपनी बिल्ड सेटिंग को कॉन्फ़िगर करने का तरीका बताया गया है.
- SDK स्रोत फ़ाइलें डाउनलोड करें: Google Places-8.0.0
- सोर्स फ़ाइलों को अनपैक करें.
- Xcode लॉन्च करें या कोई मौजूदा प्रोजेक्ट खोलें या कोई नया प्रोजेक्ट बनाएं. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले कभी नहीं किया है, तो एक नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- अपने प्रोजेक्ट से, पिछली रिलीज़ से Maps बंडल हटाएं.
- नीचे दिए गए बंडल को अपने प्रोजेक्ट में खींचें और जब कहा जाए, तब आइटम की ज़रूरत होने पर कॉपी करें चुनें:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
का दायां क्लिक करें और Finder में दिखाएं चुनें. GooglePlaces.bundle
कोResources
फ़ोल्डर से खींचकर अपने प्रोजेक्ट में छोड़ें. जब कहा जाए, तब पक्का करें कि आइटम के फ़ोल्डर के फ़ोल्डर में आइटम कॉपी करें चुना नहीं गया हो.- प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड चरण टैब खोलें और लाइब्रेरी के साथ बाइनरी लिंक करें में, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में मौजूद फ़िल्टर को सामान्य से सभी में बदलें.
XCFramework इंस्टॉल करें
XCFramework एक बाइनरी पैकेज है, जिसका इस्तेमाल आप कई प्लैटफ़ॉर्म पर कर सकते हैं, जिसमें M1 चिपसेट का इस्तेमाल करने वाली मशीनें भी शामिल हैं, ताकि iOS के लिए Places SDK टूल इंस्टॉल किया जा सके. इस गाइड में, iOS के लिए Places SDK टूल में XCFramework जोड़ने और अपने प्रोजेक्ट में बिल्ड की सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है.
कार्थेज के साथ
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
में बताए गए एपीआई और उनके डिपेंडेंसी भी इंस्टॉल हो जाएंगी.- Finder में जाकर, अपनी प्रोजेक्ट डायरेक्ट्री में,
Carthage/Build
में जाकर, डाउनलोड की गई फ़्रेमवर्क फ़ाइलों पर जाएं. - फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में जाकर, अपने प्रोजेक्ट में
XCFramework को खींचें और छोड़ें. पक्का करें कि
एम्बेड न करें को चुना गया हो:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
का दायां क्लिक करें और Finder में दिखाएं चुनें. GooglePlaces.bundle
कोios-arm64/GooglePlaces.framework/Resources
फ़ोल्डर से, अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि आइटम के फ़ोल्डर के फ़ोल्डर में आइटम कॉपी करें चुना नहीं गया हो.- प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड चरण टैब खोलें और लाइब्रेरी के साथ बाइनरी लिंक करें में जाकर, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड की सेटिंग टैब खोलें.
- दूसरे लिंकर फ़्लैग सेक्शन में,
-ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड की सेटिंग बार में मौजूद फ़िल्टर को सामान्य से सभी में बदलें.
मैन्युअल रूप से
इस गाइड में, iOS के लिए Maps SDK टूल को अपने प्रोजेक्ट में मैन्युअल तरीके से जोड़ने और Xcode में अपनी बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है.
- SDK स्रोत फ़ाइलें डाउनलोड करें: Google Places-8.0.0.
- सोर्स फ़ाइलों को अनपैक करें. XCFramework ऐक्सेस करने के लिए Frameworks फ़ोल्डर पर जाएं.
- Xcode लॉन्च करें या कोई मौजूदा प्रोजेक्ट खोलें या कोई नया प्रोजेक्ट बनाएं. अगर iOS का इस्तेमाल आपके लिए नया है, तो एक नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
- फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में जाकर, अपने प्रोजेक्ट में
XCFramework को खींचें और छोड़ें. पक्का करें कि
एम्बेड न करें को चुना गया हो:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- अपने प्रोजेक्ट में
GooglePlaces.xcframework
का दायां क्लिक करें और Finder में दिखाएं चुनें. GooglePlaces.bundle
कोios-arm64/GooglePlaces.framework/Resources
फ़ोल्डर से, अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि आइटम के फ़ोल्डर के फ़ोल्डर में आइटम कॉपी करें चुना नहीं गया हो.- प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड चरण टैब खोलें और लाइब्रेरी के साथ बाइनरी लिंक करें में जाकर, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
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 इंस्टॉल करना होगा.