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à bạn dùng để phát triển ứng dụng của mình.
Ghi chú phát hành có sẵn 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 dự án bằng cách sử dụng SDK Maps dành cho iOS, bạn phải tải xuống và cài đặt:
- Xcode phiên bản 15.0 trở lên
Bước 2: Tạo dự án Xcode và cài đặt SDK Maps dành cho iOS
Trình quản lý gói Swift
Bạn có thể cài đặt SDK Maps dành cho iOS thông qua Trình quản lý gói Swift. Để thêm SDK này, hãy đảm bảo bạn đã xoá mọi phần phụ thuộc hiện có của SDK Maps dành cho iOS.
Để thêm SDK vào một dự án mới hoặc hiện có, hãy làm theo các bước sau:
-
Mở Xcode
project
hoặcworkspace
, sau đó chuyển đến File > Add Package Dependencies (Tệp > Thêm phần phụ thuộc gói). - Nhập https://github.com/googlemaps/ios-maps-sdk làm URL, nhấn Enter để kéo gói và nhấp vào "Thêm gói".
-
Để cài đặt một
version
cụ thể, hãy đặt trường Quy tắc phần phụ thuộc thành một trong các tuỳ chọn dựa trên phiên bản. Đối với dự án mới, bạn nên chỉ định phiên bản mới nhất và sử dụng tuỳ chọn "Phiên bản chính xác". Sau khi hoàn tất, hãy nhấp vào "Thêm gói". -
Trong cửa sổ Choose Package Products (Chọn sản phẩm gói), hãy xác minh
GoogleMaps
,GoogleMapsBase
vàGoogleMapsCore
sẽ được thêm vào mục tiêumain
mà bạn chỉ định. Sau khi hoàn tất, hãy nhấp vào "Thêm gói". -
Để xác minh việc cài đặt, hãy chuyển đến ngăn
General
của mục tiêu. Trong Frameworks, Libraries và Embedded Content (Nội dung được nhúng), bạn sẽ thấy các gói đã cài đặt. Bạn cũng có thể xem phần "Package Dependencies" (Phần phụ thuộc của gói) trong "Project Navigator" (Trình điều hướng dự án) để xác minh gói và phiên bản của gói đó.
Để cập nhật package
cho một dự án hiện có, hãy làm theo các bước sau:
- Trong Xcode, hãy chuyển đến "File > Packages > Update To New Package Versions" (Tệp > Gói > Cập nhật lên phiên bản gói mới nhất).
- Để xác minh quá trình cài đặt, hãy chuyển đến phần Package Dependencies (Phần phụ thuộc của gói) trong Project Navigator (Trình điều hướng dự án) để xác minh gói và phiên bản của gói đó.
Để xoá SDK Maps hiện có cho các phần phụ thuộc iOS được thêm bằng
CocoaPods
, hãy làm theo các bước sau:
- Đóng không gian làm việc Xcode của bạn. Mở cửa sổ dòng lệnh rồi thực thi lệnh sau:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
Hãy xoá
Podfile
,Podfile.resolved
và Xcodeworkspace
nếu bạn không sử dụng chúng cho bất kỳ sản phẩm nào khác ngoài CocoaPods.
-
Trong phần cài đặt cấu hình của dự án Xcode, hãy tìm Khung, Thư viện và Nội dung được nhúng. Sử dụng dấu trừ(-) để xoá khung sau:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
-
Trong thư mục cấp cao nhất của dự án Xcode, hãy xoá gói
GoogleMaps
.
CocoaPods
SDK Maps dành cho iOS được cung cấp dưới dạng nhóm CocoaPods. CocoaPods là trình quản lý phần phụ thuộc nguồn mở cho các dự án Swift và Objective-C Cacao.
Nếu bạn chưa cài đặt 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 từ 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 Maps dành cho iOS và sử dụng
SDK này để cài đặt API và các phần phụ thuộc của API đó:
- 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 dự án đó vào
máy cục bộ của bạn. Nếu bạn mới làm quen với việc phát triển ứng dụng cho iOS:
- Tạo một dự án mới.
- Chọn mẫu iOS > Ứng dụng.
- Trên màn hình tuỳ chọn của dự án:
- Nhập Project Name (Tên dự án).
- Ghi lại giá trị của trường Giá trị nhận dạng gói. Bạn có thể dùng giá trị đó để hạn chế khoá API ở bên dưới.
- Đặt Interface (Giao diện) của dự án thành Storyboard (Bảng phân cảnh).
- Đặt Language (Ngôn ngữ) thành Swift hoặc Objective-C.
- 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 đó. Sau đây là một ví dụ về phần phụ thuộc mà bạn cần cho SDK Maps dành cho iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.4.0' end
Hãy nhớ chạypod outdated
thường xuyên để phát hiện thời điểm có phiên bản mới hơn nhằm đảm bảo bạn luôn nắm bắt thông tin mới nhất. Nếu cần, hãy nâng cấp lên phiên bản 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, sau đó 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.
Để cập nhật API cho dự án hiện có, hãy làm theo các bước sau:
- Mở cửa sổ dòng lệnh rồi chuyển đến thư mục dự án có 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.
Cài đặt thủ công
Hướng dẫn này cho bạn biết cách thêm XCFrameworks có chứa SDK Maps dành cho iOS vào dự án của bạn theo cách thủ công và định cấu hình 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.- Tải các tệp nhị phân SDK và tệp tài nguyên sau đây xuống:
- Giải nén các tệp để truy cập vào XCFrameworks và tài nguyên.
- 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 dự án đó vào
máy cục bộ của bạn. Nếu bạn mới làm quen với việc phát triển ứng dụng cho iOS:
- Tạo một dự án mới.
- Chọn mẫu iOS > Ứng dụng.
- Trên màn hình tuỳ chọn của dự án:
- Nhập Project Name (Tên dự án).
- Ghi lại giá trị của trường Giá trị nhận dạng gói. Bạn có thể dùng giá trị đó để hạn chế khoá API ở bên dưới.
- Đặt Interface (Giao diện) của dự án thành Storyboard (Bảng phân cảnh).
- Đặt Language (Ngôn ngữ) thành Swift hoặc Objective-C.
-
Mở thẻ General (Chung). Kéo các XCFrameworks sau vào dự án của bạn trong phần Frameworks, Libraries and Embedded Content (Nội dung được nhúng). Hãy nhớ chọn Do Not Nhúng (Không nhúng) cho từng XCFramework:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
-
Sao chép
GoogleMaps.bundle
từ GoogleMapsResources mà bạn đã tải xuống vào thư mục cấp cao nhất của dự án Xcode. Hãy nhớ chọn Sao chép các mục vào thư mục của nhóm đích khi được nhắc. - Chọn dự án của bạn trên Project Navigator rồi chọn mục tiêu của ứng dụng.
-
Mở thẻ Tạo giai đoạn cho mục tiêu của ứng dụng.
Trong phần Link Binary with Libraries (Liên kết tệp nhị phân với thư viện), hãy thêm các khung và thư viện sau:
Accelerate.framework
Contacts.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.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 phần Liên kết – Chung -> Cờ trình liên kết khác, hãy thêm
-ObjC
vào phần "Gỡ lỗi" và "Phát hành". Nếu các 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ả). -
Để cài đặt SDK Địa điểm cho XCFramework trên iOS, hãy xem phần Bắt đầu sử dụng SDK Địa điểm dành cho iOS.
Thêm tệp kê khai quyền riêng tư của Apple
Apple yêu cầu cung cấp thông tin chi tiết về quyền riêng tư trong ứng dụng đối với các ứng dụng trên App Store. Truy cập trang Chi tiết về quyền riêng tư trên App Store của Apple để xem nội dung cập nhật và biết thêm thông tin.
- Tải gói Tệp kê khai quyền riêng tư cho SDK Maps dành cho iOS: GoogleMapsPrivacy.
- Giải nén tệp để truy cập vào
GoogleMapsPrivacy.bundle
. - Thêm
GoogleMapsPrivacy.bundle
vào trình điều hướng của Dự án Xcode bằng một trong các phương thức này. Hãy nhớ chọn hộp "Thêm vào mục tiêu" cho mục tiêu của ứng dụng. Sau khi thêm, tệp PrivacyInfo sẽ xuất hiện trong trình điều hướng của dự án và bạn có thể kiểm tra các giá trị. - Xác minh rằng tệp kê khai quyền riêng tư đã được thêm vào bằng cách tạo bản lưu trữ của ứng dụng và tạo báo cáo về quyền riêng tư từ bản lưu trữ.
Bước 3: Thêm khoá API vào dự án
Trong mục Lấy khoá API, bạn đã tạo một khoá API cho ứng dụng của mình. Bây giờ, hãy thêm khoá đó vào dự án Xcode của bạn.
Trong các ví dụ sau, hãy thay thế YOUR_API_KEY
bằng khoá API.
để biết thêm thông tin.
Swift
Thêm khoá API vào AppDelegate.swift
như sau:
- Thêm câu lệnh nhập sau:
import GoogleMaps
- Thêm đoạn mã sau vào phương thức
application(_:didFinishLaunchingWithOptions:)
bằng cách sử dụng khoá API:GMSServices.provideAPIKey("YOUR_API_KEY")
- Nếu bạn cũng đang sử dụng Places API, hãy thêm lại khoá của bạn như minh hoạ bên dưới:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Thêm khoá API vào AppDelegate.m
như sau:
- Thêm câu lệnh nhập sau:
@import GoogleMaps;
- Thêm đoạn mã sau vào phương thức
application:didFinishLaunchingWithOptions:
bằng cách sử dụng khoá API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Nếu bạn cũng đang sử dụng Places API, hãy thêm lại khoá của bạn như minh hoạ bên dưới:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Bước 4: Thêm bản đồ
Swift
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) options.frame = self.view.bounds let mapView = GMSMapView(options: options) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController() @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
Bước 5 (Không bắt buộc): Khai báo giao thức URL mà API sử dụng
Kể từ iOS 9 và Xcode 7, các ứng dụng có thể khai báo giao thức URL mà chúng dự định mở bằng cách chỉ định các giao thức đó trong tệp Info.plist
của ứng dụng. SDK Maps dành cho iOS sẽ mở ứng dụng Google Maps dành cho thiết bị di động khi người dùng nhấp vào biểu trưng Google trên bản đồ. Do đó, ứng dụng của bạn có thể khai báo các lược đồ URL có liên quan.
Để khai báo giao thức URL mà SDK Maps dành cho iOS sử dụng, hãy thêm các dòng sau vào Info.plist
của bạn:
Ảnh chụp màn hình sau đây cho thấy cấu hình trong giao diện người dùng của Xcode:
Nếu không có nội dung khai báo ở trên, các lỗi sau đây có thể xảy ra khi người dùng nhấn vào biểu trưng Google trên bản đồ:
-canOpenURL: không thành công cho URL: "comgooglemaps://" - lỗi: "Ứng dụng này không được phép truy vấn lược đồ comgooglemaps" -canOpenURL: không truy vấn được cho URL: "googlechromes://" - lỗi: "Ứng dụng này không được phép truy vấn lược đồ googlechromes"
Để loại bỏ những lỗi này, hãy thêm phần khai báo vào Info.plist
.
Bước tiếp theo
Giờ đây, khi đã có khoá API và dự án Xcode, bạn có thể tạo và chạy ứng dụng. SDK Điều hướng dành cho iOS cung cấp nhiều hướng dẫn và ứng dụng mẫu có thể giúp bạn bắt đầu. Để biết thêm chi tiết, hãy xem: