Sau khi bật tính năng thanh toán và tạo khoá API, bạn có thể thiết lập dự án Xcode mà mình dùng để phát triển ứng dụng.
Có ghi chú phát hành cho mỗi bản phát hành.
Bước 1: Cài đặt phần mềm cần thiết
Để tạo một dự án bằng SDK Địa điểm dành cho iOS, bạn cần:
- Xcode phiên bản 14.0 trở lên
- CocoaPods
- Nếu bạn chưa có dự án Xcode, hãy tạo một dự án ngay bây giờ và lưu vào máy cục bộ của mình. Nếu bạn mới phát triển ứng dụng iOS, hãy tạo một dự án mới và chọn Mẫu ứng dụng iOS.
- Tạo một tệp có tên
Podfile
trong thư mục dự án. Tệp này xác định các phần phụ thuộc của dự án. - Chỉnh sửa
Podfile
và thêm các phần phụ thuộc cùng với versions của các phần phụ thuộc đó. Dưới đây là ví dụ chỉ định tên mục tiêu của ứng dụng và tên của nhómGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
Hãy nhớ thường xuyên chạypod outdated
để phát hiện khi có phiên bản mới hơn nhằm đảm bảo bạn luôn cập nhật được thông tin mới nhất. - Lưu
Podfile
. Mở cửa sổ dòng lệnh rồi chuyển đến thư mục chứa
Podfile
:cd <path-to-project>
Chạy lệnh
pod install
. Thao tác này sẽ cài đặt các API được chỉ định trongPodfile
, cùng với mọi phần phụ thuộc có thể có trong các API đó.pod install
Đóng Xcode rồi mở (nhấp đúp) vào tệp
.xcworkspace
của dự án để chạy Xcode. Từ thời điểm này trở đi, bạn phải dùng tệp.xcworkspace
để mở dự án.- Mở cửa sổ dòng lệnh rồi chuyển đến thư mục dự án chứa
Podfile
. - Chạy lệnh
pod update
. Thao tác này sẽ cập nhật tất cả API được chỉ định trongPodfile
lên phiên bản mới nhất. - Tải các tệp nhị phân và tài nguyên SDK sau đây xuống:
- Giải nén các tệp nén để truy cập vào XCFramework và các tài nguyên.
- Chạy Xcode rồi mở một dự án hiện có hoặc tạo một dự án mới. Nếu bạn mới phát triển ứng dụng iOS, hãy tạo một dự án mới và chọn Mẫu ứng dụng iOS.
- Xoá mọi gói Maps trong các bản phát hành trước khỏi dự án của bạn.
- Kéo XCFramework sau đây vào dự án của bạn trong phần Frameworks, Libraries và Embedded Content (Khung, Thư viện và Nội dung được nhúng). Đừng quên chọn Không nhúng:
GooglePlaces.xcframework
- Kéo
GooglePlaces.bundle
từ GooglePlacesResources mà bạn đã tải xuống vào thư mục cấp cao nhất của dự án Xcode của bạn. Khi được nhắc, hãy nhớ chọn Sao chép các mục vào thư mục của nhóm đích. - Chọn dự án của bạn trên Project Navigator (Trình điều hướng dự án) rồi chọn mục tiêu của ứng dụng.
- Mở thẻ Build Giai đoạn và trong mục Link Binary with Libraries (Liên kết tệp nhị phân với thư viện), rồi thêm các khung và thư viện sau:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Chọn dự án của bạn, thay vì một mục tiêu cụ thể, rồi mở thẻ Build Settings (Cài đặt bản dựng).
- Trong mục Cờ trình liên kết khác, hãy thêm
-ObjC
. Nếu những chế độ cài đặt này không xuất hiện, hãy thay đổi bộ lọc trong thanh Build Settings (Cài đặt bản dựng) từ Basic (Cơ bản) thành All (Tất cả). - Thêm câu lệnh nhập sau:
import GooglePlaces
- Thêm đoạn mã sau vào phương thức
application(_:didFinishLaunchingWithOptions:)
, thay thế YOUR_API_KEY bằng khoá API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
- Thêm câu lệnh nhập sau:
@import GooglePlaces;
- Thêm đoạn mã sau vào phương thức
application:didFinishLaunchingWithOptions:
, thay thế YOUR_API_KEY bằng khoá API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Bước 2: Tạo dự án Xcode và cài đặt SDK Địa điểm dành cho iOS
Để cài đặt API trong một dự án mới, hãy làm theo các bước sau:Sử dụng CocoaPods
SDK Địa điểm dành cho iOS có sẵn dưới dạng một nhóm CocoaPod, GooglePlaces, chứa tất cả chức năng về địa điểm.
CocoaPods là trình quản lý phần phụ thuộc nguồn mở cho các dự án Swift và Objective-C Cocoa. Nếu bạn chưa có công cụ CocoaPods, hãy cài đặt công cụ này trên macOS bằng cách chạy lệnh sau trên cửa sổ dòng lệnh. Để biết thông tin chi tiết, hãy xem Hướng dẫn bắt đầu sử dụng CocoaPods.
sudo gem install cocoapods
Tạo một Podfile
cho SDK Địa điểm dành cho iOS và sử dụng SDK này để cài đặt SDK cũng như các phần phụ thuộc của SDK đó:
Để cập nhật API cho một dự án hiện có, hãy làm theo các bước sau:
Tự cài đặt
Hướng dẫn này cho biết cách thêm thủ công XCFramework có chứa SDK địa điểm dành cho iOS vào dự án của bạn và định cấu hình các chế độ cài đặt bản dựng trong Xcode. XCFramework là một gói nhị phân mà bạn có thể sử dụng trên nhiều nền tảng, bao gồm cả các máy sử dụng Apple silicon.
Bước 3: Thêm khoá API vào ứng dụng
Trong các ví dụ sau, hãy thay thế YOUR_API_KEY
bằng khoá API.
Swift
Thêm khoá API vào AppDelegate.swift
như sau:
Objective-C
Thêm khoá API vào AppDelegate.m
như sau:
Bước 4: Bắt đầu viết mã
Các mã mẫu sau đây minh hoạ cách lấy địa điểm hiện tại.
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
Các bước tiếp theo
Sau khi định cấu hình dự án, bạn có thể khám phá các ứng dụng mẫu. Bạn cần cài đặt CocoaPods phiên bản 1.6.1.