Google Maps SDK for iOS를 수동으로 설치하여 도쿄역보기 (Swift4)
7997 단어 SwiftGoogleMapsAPI
소개
Google Maps SDK for iOS
를 매뉴얼 인스톨 해, 도쿄역을 표시할 때까지를 정리합니다
CocoaPod에 의한 설치는 이 기사이 참고가 될 것입니다
소요시간
30분
환경
xcode9.2(swift4)
전제
M4B
라는 라이브러리를 설치해야합니다. 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 에러가 되어 버립니다
이 절차를 수행한 후 BuildPhase
의 CopyBandleResource
에 GoogleMaps.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()
}
}
결과
빌드하고 시뮬레이션을 시작하면 도쿄역이 표시됩니다.
빠진 곳
${解凍したGoogleMapSDKのディレクトリ}/Base/Framework/GoogleMapsBase.framework
${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMaps.framework
${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMapsCore.framework
${解凍したGoogleMapSDKのディレクトリ}/Maps/Framework/GoogleMaps.framework/Resources1
여기까지의 순서로, 아래 준비는 끝났으므로 다음은 구현에 들어갑니다.
이 기사는 공식 페이지를 참조했습니다.
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을 표시하려고했습니다)
Reference
이 문제에 관하여(Google Maps SDK for iOS를 수동으로 설치하여 도쿄역보기 (Swift4)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gakugakuburuburu/items/01187e412c8d930cda60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)