Google Maps SDK for iOS를 수동으로 설치하여 도쿄역보기 (Swift4)

7997 단어 SwiftGoogleMapsAPI

소개


Google Maps SDK for iOS를 매뉴얼 인스톨 해, 도쿄역을 표시할 때까지를 정리합니다
CocoaPod에 의한 설치는 이 기사이 참고가 될 것입니다

소요시간

30분

환경

xcode9.2(swift4)

전제
  • Xcode에서 적절한 프로젝트를 생성하는 것 (Single View App)
  • 프리미엄 플랜이 아니어야합니다 (프리미엄 플랜의 경우 M4B라는 라이브러리를 설치해야합니다.
  • Google의 개발자 계정이 있고 API 키 발급이 완료되었습니다

  • GoogleMapsSDK 설치



    SDK 다운로드 및 압축 해제

    공식 페이지 에서 SDK 세트를 떨어뜨려 해동해 둡니다

    Framework 추가

    만든 프로젝트에 Framework를 추가합니다. 이번에는, $(PROJECT_DIR)/GoogleMap 에 Framework용 디렉토리를 작성해, 그 부하에 떨어뜨린 Framework를 추가합니다.
    Finder에서 다음 파일을 xCode 프로젝트로 드래그 앤 드롭하여 프로젝트에 Framewor를 추가합니다. 이때, Copy items if needed 는 체크해 둡니다
    (프로젝트 루트를 선택하고 General -> Linked Frameworks and Libraries+
    ↓추가하는 것
    
    ${解凍したGoogleMapSDKのディレクトリ}/Base/Framework/GoogleMapsBase.framework
    ${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMaps.framework
    ${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMapsCore.framework
    

    GoogleMaps.bandle 추가

    다음 디렉토리 아래에 GoogleMaps.bandle가 있으므로 $(PROJECT_DIR)/GoogleMap로 복사합니다.
    
    ${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMaps.framework/Resources1
    

    Framework의 추가 순서로 통째로 포함하고 있습니다만, 이것은 제외하지 않으면 xcode가 인식해 주지 않고, 런타임시 bandle 에러가 되어 버립니다
    이 절차를 수행한 후 BuildPhaseCopyBandleResourceGoogleMaps.bundle 가 추가되어 있어야 합니다. 그렇지 않다면 + 에서 추가하겠습니다.

    기타 필요한 라이브러리 링크
    Linked Frameworks and Libraries+ 에서 Framework를 Link합니다.
    (순서는 관계 없기 때문에 적당하고 OK입니다


    -ObjC 플래그 설정

    GoogleMapsSDK for iOS는 objective-c에 설명되어 있으므로 Swift에서 objective-c로 작성된 Framework를 사용하려면 OtherLinkerFlags-ObjC를 설정해야합니다.
    이 근처 별로 자세하지 않습니다만.


    도쿄역 표시



    여기까지의 순서로, 아래 준비는 끝났으므로 다음은 구현에 들어갑니다.
    이 기사는 공식 페이지를 참조했습니다.

    AppDalegate

    AppDelegate.swift
    
    import UIKit
    import GoogleMaps
    
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        let apiKey = "発行したAPIKey" // ここに発行したGoogleAPIKeyを設定する
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            GMSServices.provideAPIKey(apiKey)
    
            return true
        }
    }
    

    UIViewController

    ViewController
    
    import UIKit
    import GoogleMaps
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // 東京駅の座標をセット
            let camera = GMSCameraPosition.camera(withLatitude: 35.681167, longitude: 139.767052, zoom: 16.0)
            let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
            mapView.isMyLocationEnabled = true
            view = mapView
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
    }
    

    결과



    빌드하고 시뮬레이션을 시작하면 도쿄역이 표시됩니다.


    빠진 곳


  • 처음에는 -ObjC를 BuildPhases에 넣지 않고 GoogleMaps.bundle

    참고문헌



    htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 마 ps / 도쿠 멘 타치 온 / 이오 sdk / s rt # 및 p_ 오 f_ 파게 (공식 iOS Maps SDK for iOS 시작 가이드)
    htps : // 코 m / 고바보 y / ms / 83164707c103 005b6 (Swift에서 Google Maps SDK for iOS를 사용하여 GoogleMap을 표시하려고했습니다)
  • 좋은 웹페이지 즐겨찾기