Amazon Location의 초기 코드 설정 - Amazon Location Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Location의 초기 코드 설정

이 페이지에서는 Amazon Location Service와 통합되는 샘플 iOS 애플리케이션의 초기 코드를 제공합니다. 이 코드를 시작점으로 사용하면 맵, 지오코딩, 지오펜싱, 추적 및 라우팅과 같은 기능을 활용하여 위치 인식 iOS 앱을 구축할 수 있습니다.

앱에서 위치 권한 활성화
  1. Xcode 프로젝트를 엽니다.

  2. 프로젝트 Info.plist 파일을 찾습니다.

  3. 앱의 요구 사항에 따라 위치 권한에 필요한 키를 추가합니다. 키는 다음과 같습니다.

    • NSLocationWhenInUseUsageDescription: 앱을 사용 중일 때 앱에 위치 액세스가 필요한 이유에 대한 설명입니다.

    • NSLocationAlwaysAndWhenInUseUsageDescription: 앱에 지속적인 위치 액세스가 필요한 이유에 대한 설명입니다.

이제 앱에서 리소스 값을 구성해야 합니다. 라는 새 파일을 추가Config.xcconfig하고 Amazon 콘솔에서 이전에 생성한 값을 입력합니다.

REGION = INDEX_NAME = MAP_NAME = IDENTITY_POOL_ID = TRACKER_NAME =
  1. 왼쪽 탐색기 섹션에서 프로젝트를 선택합니다.

  2. 대상 섹션에서 앱을 선택하고 정보 탭을 클릭합니다.

  3. 다음과 같은 값을 사용하여 정보 속성을 추가합니다.

  4. 번들 정보 Config.swift 파일에서 구성 값을 읽는 아래 내용이 포함된 파일을 추가합니다.

    import Foundation enum Config { static let region = Bundle.main.object(forInfoDictionaryKey: "Region") as! String static let mapName = Bundle.main.object(forInfoDictionaryKey: "MapName") as! String static let indexName = Bundle.main.object(forInfoDictionaryKey: "IndexName") as! String static let identityPoolId = Bundle.main.object(forInfoDictionaryKey: "IdentityPoolId") as! String static let trackerName = Bundle.main.object(forInfoDictionaryKey: "TrackerName") as! String }
  5. 이름이 인 새 폴더를 생성하고 그 안에 TrackingViewModel.swift 파일을 ViewModel 추가합니다.

    import SwiftUI import AmazonLocationiOSAuthSDK import MapLibre final class TrackingViewModel : ObservableObject { @Published var trackingButtonText = NSLocalizedString("StartTrackingLabel", comment: "") @Published var trackingButtonColor = Color.blue @Published var trackingButtonIcon = "play.circle" @Published var region : String @Published var mapName : String @Published var indexName : String @Published var identityPoolId : String @Published var trackerName : String @Published var showAlert = false @Published var alertTitle = "" @Published var alertMessage = "" @Published var centerLabel = "" var clientIntialised: Bool var client: LocationTracker! var authHelper: AuthHelper var credentialsProvider: LocationCredentialsProvider? var mlnMapView: MLNMapView? var mapViewDelegate: MapViewDelegate? var lastGetTrackingTime: Date? var trackingActive: Bool init(region: String, mapName: String, indexName: String, identityPoolId: String, trackerName: String) { self.region = region self.mapName = mapName self.indexName = indexName self.identityPoolId = identityPoolId self.trackerName = trackerName self.authHelper = AuthHelper() self.trackingActive = false self.clientIntialised = false } func authWithCognito(identityPoolId: String?) { guard let identityPoolId = identityPoolId?.trimmingCharacters(in: .whitespacesAndNewlines) else { alertTitle = NSLocalizedString("Error", comment: "") alertMessage = NSLocalizedString("NotAllFieldsAreConfigured", comment: "") showAlert = true return } credentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: identityPoolId) initializeClient() } func initializeClient() { client = LocationTracker(provider: credentialsProvider!, trackerName: trackerName) clientIntialised = true } }