Xcode 프로젝트 설정

결제를 사용 설정하고 API 키를 생성한 후 Xcode를 설정할 준비가 된 것입니다. 프로젝트에 사용할 수 있습니다.

각각에 대한 출시 노트를 확인할 수 있습니다. 있습니다.

1단계: 필수 소프트웨어 설치하기

iOS용 Navigation SDK를 사용하여 프로젝트를 빌드하려면 다음을 다운로드하여 설치해야 합니다.

  • Xcode 버전 15.0 이상

2단계: Xcode 프로젝트 만들기 및 Navigation SDK 설치

Swift Package Manager

Navigation SDK는 를 통해 설치할 수 있습니다. Swift Package Manager SDK를 추가하려면 기존 Navigation SDK 종속 항목이 삭제되었습니다.

새 프로젝트 또는 기존 프로젝트에 SDK를 추가하려면 다음 단계를 따르세요.

  1. Xcode project 또는 workspace를 열고 File(파일) > 패키지 종속 항목 추가를 참조하세요.
  2. URL에 https://github.com/googlemaps/ios-navigation-sdk를 입력하고 Enter 키를 누릅니다. 패키지를 가져오고 '패키지 추가'를 클릭합니다.
  3. 특정 version를 설치하려면 종속 항목 규칙 필드를 버전 기반 옵션입니다 새 프로젝트의 경우 최신 버전을 지정하고 '정확한 버전'을 사용하는 경우 옵션을 선택합니다. 완료되면 'Add Package'를 클릭합니다.
  4. Choose Package Products(패키지 제품 선택) 창에서 GoogleNavigation가 지정된 main 타겟 완료되면 'Add Package'를 클릭합니다.
  5. 설치를 확인하려면 대상의 General 창으로 이동합니다. 프레임워크, 라이브러리 및 삽입된 콘텐츠에서 설치된 패키지를 확인할 수 있습니다. 또한 '패키지 종속 항목' 섹션에서 '프로젝트 탐색기' 섹션의 패키지와 해당 버전을 확인합니다.

기존 프로젝트의 package를 업데이트하려면 다음 단계를 따르세요.

  1. 9.0.0 이전 버전에서 업그레이드하는 경우 GoogleMapsBase, GoogleMapsCore, 업그레이드 후 GoogleMapsM4B의 비용이 청구됩니다. 다음 종속 항목을 삭제하지 마세요. GoogleMaps 자세한 내용은 버전 9.0.0 출시 노트

    Xcode 프로젝트 구성 설정에서 프레임워크, 라이브러리, 및 삽입된 콘텐츠를 참조하세요. 빼기 기호(-)를 사용하여 다음 프레임워크를 삭제합니다.

    • GoogleMapsBase (9.0.0 이전 버전에서 업그레이드하는 경우에만)
    • GoogleMapsCore (9.0.0 이전 버전에서 업그레이드하는 경우에만)
    • GoogleMapsM4B (9.0.0 이전 버전에서 업그레이드하는 경우에만)
  2. Xcode에서 'File(파일) > 패키지 > Update To Latest Package Versions'(최신 패키지 버전으로 업데이트)'라는 오류 메시지가 표시됩니다.
  3. 설치를 확인하려면 Project NavigatorPackage Dependencies 섹션으로 이동합니다. 패키지와 해당 버전을 확인합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

다음을 사용하여 추가된 기존 Navigation SDK 종속 항목 삭제 CocoaPods인 경우 다음 단계를 따르세요.

  1. Xcode 작업공간을 닫습니다. 터미널을 열고 다음 명령어를 실행합니다.
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Podfile, Podfile.resolved, CocoaPods 외의 용도로 사용하지 않는 경우 Xcode workspace

수동으로 설치된 기존 iOS용 Navigation SDK를 삭제하려면 다음 단계를 따르세요. 다음 단계를 따르세요.
  1. Xcode 프로젝트 구성 설정에서 프레임워크, 라이브러리, 및 삽입된 콘텐츠를 참조하세요. 빼기 기호(-)를 사용하여 다음 프레임워크를 삭제합니다.
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Xcode 프로젝트의 최상위 디렉터리에서 GoogleMaps를 삭제합니다. 번들을 선택합니다.

CocoaPods

iOS용 Navigation SDK는 CocoaPods 포드에 추가할 수 있습니다. CocoaPods는 Swift 및 Objective-C Cocoa 프로젝트용 오픈소스 종속 항목 관리자입니다.

아직 CocoaPods 도구가 없으면 터미널에서 다음 명령어를 실행하여 macOS에 CocoaPods 도구를 설치합니다. 자세한 내용은 CocoaPods 시작 가이드를 참조하세요.

sudo gem install cocoapods

iOS용 Navigation SDK의 Podfile를 만들어 사용합니다. 다음 명령어를 실행하여 API와 종속 항목을 설치합니다.

  1. 아직 Xcode 프로젝트가 없으면 지금 만들어 가상 머신을 실행하는 것입니다 iOS 개발이 처음인 경우:
    1. 새 프로젝트를 만듭니다.
    2. iOS > App 템플릿입니다.
    3. 프로젝트 옵션 화면에서 다음을 수행합니다.
      1. Project Name(프로젝트 이름)을 입력합니다.
      2. 번들 식별자 필드의 값을 기록합니다. 이 값을 사용하여 아래에서 API 키를 제한할 수 있습니다.
      3. 프로젝트 InterfaceStoryboard로 설정합니다.
      4. LanguageSwift 또는 Objective-C로 설정합니다.
  2. 프로젝트 디렉터리에 Podfile 파일을 만듭니다. 이 파일은 프로젝트의 종속 항목을 정의합니다.
  3. Podfile을 수정하고 관련 종속 항목과 함께 종속 항목을 추가합니다. 버전 이 예시에서는 iOS용 Navigation SDK: # CocoaPods 설치 참조 번호
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.0.0'
    end
            
    정기적으로 pod outdated를 실행하여 최신 버전을 감지해야 합니다. 제공합니다 필요한 경우 업그레이드합니다. 최신 버전으로 업그레이드하세요.
  4. Podfile을 저장합니다.
  5. 터미널을 열고 Podfile가 포함된 디렉터리로 이동합니다.

    cd <path-to-project>
  6. pod install 명령어를 실행합니다. 이렇게 하면 Podfile에 지정된 API와 모든 종속 항목

    pod install
  7. Xcode를 닫은 다음 프로젝트의 .xcworkspace 파일을 (더블클릭하여) 열어 Xcode를 실행합니다. 이 때부터는 .xcworkspace 파일을 사용하여 프로젝트를 열어야 합니다.

기존 프로젝트의 API를 업데이트하려면 다음 단계를 따르세요.

  1. 터미널을 열고 Podfile가 포함된 프로젝트 디렉터리로 이동합니다.
  2. pod update 명령어를 실행합니다. 이렇게 하면 모든 API가 업데이트됩니다. Podfile에 지정된 최신 버전으로 업데이트합니다.

수동 설치

본 가이드는 iOS용 Navigation SDK와 iOS용 Maps SDK를 프로젝트에 추가하고 Xcode에서 빌드 설정을 구성합니다. XCFramework는 M1 칩셋을 사용하는 머신을 포함하여 여러 플랫폼에서 사용할 수 있는 바이너리 패키지입니다.

다음 단계에 따라 iOS용 Navigation SDK용 XCFrameworks를 설치합니다. 및 iOS용 Maps SDK:

  1. 다음 SDK 바이너리 및 리소스 파일을 다운로드합니다.
  2. Xcode를 실행하고 기존 프로젝트를 열거나 새 프로젝트를 만듭니다. iOS를 처음 사용하는 경우 새 프로젝트를 만들고 iOS 앱 템플릿
  3. 프로젝트에서 기존의 모든 지도, 내비게이션 및 장소 참조를 삭제합니다.
  4. 다음 XCFrameworks를 프로젝트 내부로 드래그합니다. 프레임워크, 라이브러리 및 삽입 콘텐츠를 사용하여 Google 지도 및 및 Navigation SDK (메시지가 표시되면 필요한 경우 항목 복사 선택):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. 다운로드한 GoogleMapsResources에서 GoogleMaps.bundle을(를) 드래그합니다. Xcode 프로젝트의 최상위 디렉터리로 이동합니다 메시지가 표시되면 필요한 경우 항목 복사가 선택되어 있는지 확인합니다.
  6. 다운로드한 GoogleNavigationResources에서 GoogleNavigation.bundle을 드래그합니다. Xcode 프로젝트의 최상위 디렉터리로 이동합니다 메시지가 표시되면 다음을 확인합니다. 대상 그룹 폴더에 항목 복사가 선택되어 있습니다.
  7. 프로젝트 탐색기에서 프로젝트를 선택하고 지정할 수도 있습니다
  8. Build 단계 탭을 열고 바이너리를 라이브러리와 연결하고 다음 프레임워크 및 라이브러리를 추가합니다.
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. 애플리케이션의 대상에서 기능 탭을 선택합니다. Background Modes를 켜고 다음 모드를 사용 설정합니다.
    • 오디오, AirPlay, PIP 모드
    • 위치 업데이트
  10. 특정 대상 대신 프로젝트를 선택하고 Build 설정 탭을 엽니다. 기타 링커 플래그 섹션에서 디버그출시‑ObjC를 추가합니다. 이러한 설정이 표시되지 않으면 Build Settings(빌드 설정) 표시줄을 Basic(기본)에서 All(전체)로 변경합니다.
  11. Info.plist를 열고 다음 키-값 쌍을 추가합니다.
    • 키: NSLocationWhenInUseUsageDescription (개인 정보 보호 - 사용 중인 위치 사용 설명)
      값: '이 앱에서 세부 경로 안내 내비게이션을 위해 위치를 사용하려면 권한이 필요합니다.'
    • 키: NSLocationAlwaysAndWhenInUseUsageDescription (개인 정보 보호 - 항상 위치 및 사용 중인 경우 사용 설명)
      값: '이 앱에서 세부 경로 안내 내비게이션을 위해 위치를 사용하려면 권한이 필요합니다.'

3단계: Apple 개인 정보 보호 매니페스트 파일 검사하기

Apple은 App Store의 앱에 대한 앱 개인 정보 보호 세부정보를 요구합니다. 업데이트 및 자세한 내용은 Apple App Store 개인 정보 보호 세부정보 페이지를 참고하세요.

Apple 개인 정보 보호 매니페스트 파일은 SDK의 리소스 번들에 포함되어 있습니다. 개인 정보 보호 매니페스트 파일이 포함되었는지 확인하고 콘텐츠를 검사하려면 앱의 보관 파일을 만들고 보관 파일에서 개인 정보 보호 보고서를 생성하세요.

4단계: 프로젝트에 직접 생성한 API 키 추가하기

다음 예는 Xcode에서 프로젝트에 API 키를 추가하는 방법을 보여줍니다.

Swift

다음과 같이 API 키를 AppDelegate.swift에 추가합니다.

  1. 다음 import 문을 추가합니다.
    import GoogleMaps
    import GoogleNavigation
  2. application(_:didFinishLaunchingWithOptions:)에 다음을 추가하세요. 메서드를 사용하여 축소하도록 요청합니다.
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

다음과 같이 API 키를 AppDelegate.m에 추가합니다.

  1. 다음 import 문을 추가합니다.
    @import GoogleMaps;
    @import GoogleNavigation;
  2. application:didFinishLaunchingWithOptions:에 다음을 추가하세요. 메서드를 사용하여 축소하도록 요청합니다.
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

5단계: 지도 추가하기

이 코드는 기존 ViewController에 간단한 지도를 추가하는 방법을 보여줍니다. 여기에는 탐색을 위한 몇 가지 초기 설정이 포함됩니다.

내비게이션을 사용하려면 먼저 사용자가 약관에 동의해야 하며 조건일 수 있습니다 사용자에게 메시지를 표시하려면 GMSNavigationServices.showTermsAndConditionsDialogIfNeeded() 후 다음을 선택합니다. 약관에 동의했는지 확인하세요. 사용자가 약관을 거부하면 mapView.isNavigationEnabled = true는 효과가 없으며 mapView.navigator는 다음과 같습니다. 없습니다.

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

애플리케이션을 실행합니다. 워싱턴주 커클랜드를 중심으로 하는 지도가 표시됩니다.

지도가 표시되지 않으면 다음을 시도해 보세요.

  • 올바른 API 키를 제공했는지 확인합니다.
  • Cloud 콘솔에서 NavSDK가 사용 설정되어 있는지 확인합니다.
  • Nav SDK가 설치되어 있지만 프로젝트에서 Nav SDK API를 사용하지 않는 경우 바이너리에서 삭제하세요.

모바일 서비스 고객인 경우

모바일 서비스 고객인 경우 결제에 대해 알아보세요. 참조하세요 녹화에 대한 자세한 내용은 자세한 내용은 결제 설정 트랜잭션 ID를 Navigation SDK 구현에 추가하는 방법을 알아보려면 다음을 참고하세요. 서비스 사용량을 모바일 트랜잭션에 연결합니다.

다음 단계

이제 API 키와 Xcode 프로젝트가 준비되었으므로 앱을 만들고 실행할 수 있습니다. iOS용 Navigation SDK는 시작해 보세요. 자세한 내용은 다음을 참고하세요.