以前のバージョンから更新する
HERE SDKを最新の状態に保つことで、最新の機能、改善点、マップデータを利用できます。
HERE SDKフレームワークを置き換えることで、HERE SDKを新しいバージョンに更新できます。
- 最新のHERE SDKリリースを入手します。詳細については、「利用開始」を参照してください。
- アプリのルートフォルダーに
heresdk.xcframeworkフォルダーをコピーします。 - Xcode で [アプリ] ターゲットの [全般] 設定を開き、
heresdk.xcframeworkをフレームワーク、ライブラリ、埋め込みコンテンツのセクションに追加します ([+] をクリックしてから、Add other -> Add files をクリックします)。 - 必要に応じて、アプリケーションのソース コードを最新の API 変更に適合させます。
HERE SDKリリースの統合についての詳細は、「利用開始」ガイドをご覧ください。
最新の HERE SDK バージョンを入手する
SDKBuildInformation から、現在統合されている HERE SDK フレームワークのバージョンを取得できます。
print("HERE SDK version: " + SDKBuildInformation.sdkVersion().versionName)HERE SDKのバージョンはSDKによって自動的に記録されます。
自動的に更新する (Navigateでのみ使用可能)
HERE SDKバージョンは、新しいHERE SDKリリースをアプリケーションに統合することによってのみ更新できます。
プログラムによってマップ バージョンを更新する方法を以下に示します。現在統合されている HERE SDK バージョンとは無関係に、マップ バージョンを更新できます。
注マップ バージョンによって、オンラインとオフラインの両方の使用向けに取得されるデータが決まります。このデータには、地図の視覚化に関連する情報と、検索、ルート検索、ナビゲーションに使用されるデータが含まれます。取得するデータを指定するには、デフォルトの
LayerConfigurationを変更します。
アプリの更新で HERE SDK の新しいバージョンが統合されると、多くの場合、新しいマップ バージョンも統合されます。ただし、マップ データは自動的に更新されません。
mapUpdater.getCurrentMapVersion()を呼び出して、現在使用されている地図のバージョンを確認します。- マップ バージョンの更新が利用可能かどうかを確認するには、
mapUpdater.retrieveCatalogsUpdateInfo()を呼び出します。
各アプリケーションの起動時などに、最新のマップ バージョンに自動的に更新することはできるでしょうか。
- これは、インストールされている地域がない場合は可能です。これがどのように行われるかをお読みください。
- インストールされている地域がある場合は、
mapUpdater.updateCatalog()を使用して更新する必要があります。詳細は「オフライン マップ」セクションを参照してください。インストールされている地域がない場合は、CatalogVersionHintを設定することで更新できます。
CatalogConfiguration を作成するときに、CatalogVersionHint を設定できます (上記も参照)。
// We want to start with the latest catalog version.
let ignoreCachedData = true
let versionHint = CatalogVersionHint.latest(ignoreCachedData: ignoreCachedData)実際には、HERE SDK を初期化する起動ごとに、キャッシュに保存されたマップ データが自動的に更新されます。デフォルトでは、マップのOCM IDを設定する必要があります (カスタムマップを使用する場合以外は、上記を参照)。
let defaultOCMHRN = "hrn:here:data::olp-here:ocm"
let defaultOCMCatalog = DesiredCatalog(hrn: defaultOCMHRN, version: versionHint)
let defaultCatalogConfiguration = CatalogConfiguration(catalog: defaultOCMCatalog)
catalogConfigurations.append(defaultCatalogConfiguration)patchHrn値が設定されていない場合、地図の増分更新が無効になることに注意してください。地域をインストールしている場合は、mapUpdater.updateCatalog()を使用して更新する必要があります。「オフラインマップ」セクションを参照してください。地図の増分更新は、地域がインストールされている場合にのみ適用されます。
次のステップとして、HERE SDKを初期化し、SDKOptionsを使用してcatalogConfigurationsを設定します。
let authenticationMode = AuthenticationMode.withKeySecret(accessKeyId: accessKeyID, accessKeySecret: accessKeySecret)
var options = SDKOptions(authenticationMode: authenticationMode)
options.catalogConfigurations = catalogConfigurations
do {
try SDKNativeEngine.makeSharedInstance(options: options)
} catch let e as InstantiationErrorCode {
fatalError("Initialization of HERE SDK failed: \(e.localizedDescription)")
}デバイスにインストールされている地域がある場合は、キャッシュに保存されたマップデータはこのコードで更新されないことに注意してください。デバイスに存在するキャッシュに保存されたデータ (たとえば、マップ キャッシュ内のデータや、PrefetchAroundLocation または PrefetchAroundRouteOnIntervals によってキャッシュに保存されたデータなど) は、新しいマップ バージョンが利用可能になると使われなくなります。このようなデータは、LRU 方式により時間の経過ともに削除されます。つまり、キャッシュはすぐには削除されませんが、必要に応じて新しいデータが使用され、キャッシュがいっぱいになると古いデータが削除されます。そのため、これが起動時間に与える影響はまったくないか、非常に限られています。
キャッシュに保存された、HERE SDK (Navigate) などのOCMベースのマップデータを自動的に更新するには、上述のコードスニペットに示されているように、DesiredCatalog内でデフォルトのHRN値"hrn:here:data::olp-here:ocm"を使用します。
ignoreCachedDataのフラグを使用して、マップバージョンを更新しようとするときに、デバイスに存在するキャッシュデータをどのように処理するかを指定できます。false に設定すると、HERE SDK はキャッシュに保存されたマップ データがまったくなく (たとえば、最初のインストール時やキャッシュを消去した後など)、さらにインストールされたマップ データがない場合にのみ、最新バージョンを使用するように自動更新されます。これ以外の場合は、効果はありません。
以前のバージョンにダウングレードする (Navigateでのみ使用可能)
下位のマップバージョンを選択することもできます。たとえば、現在のカタログよりも古い特定のカタログバージョンで起動する場合などです。
var catalogConfigurations = [CatalogConfiguration]()
let versionHint = CatalogVersionHint.specific(version: 57)この後は、HERE SDK を初期化するときに、前のセクションと同じ手順を実行します。
これは、キャッシュに保存されたマップ データや保持されたマップ データ (インストールされた地域のもの) がない場合にのみ効果があることに注意してください。たとえば、次のように呼び出すことで、アプリケーションを終了する前にキャッシュを消去できます。
SDKCache.fromEngine(SDKNativeEngine.sharedInstance!).clearCache { mapLoaderError in
if (mapLoaderError != nil) {
print("clearCache failed: " + mapLoaderError.debugDescription)
}
// Free HERE SDK resources before the application shuts down.
// Usually, this should be called only on application termination.
// Afterwards, the HERE SDK is no longer usable unless it is initialized again.
SDKNativeEngine.sharedInstance = nil
}初めてインストールする場合はこれを行う必要はありません (マップ ビューを表示する前やルート データを取得する前にこれを行う場合)。
注HERE SDK では、インストールされた
Regionマップ データをダウングレードしたり、自動更新したりすることは許可されていません。MapUpdaterでは、オフラインマップデータ (およびキャッシュ) を最新バージョンに更新することのみが可能です。
廃止版とベータ版
HERE SDK のチームは、一貫したインターフェースとともに柔軟性と使いやすさの両方を提供するため、利用可能な API を継続的に見直し、改善しています。
リリース全体で安定した API を確保するため、当社では廃止プロセスを遵守しています。廃止 API は、ChangeLog で廃止が発表された後、その次のメジャー リリースから数えた 2 つのメジャー バージョンでは維持されます。この期間は通常 6 ~ 9 か月です。「APIリファレンス」では、インターフェースが廃止とマークされたときに影響を受けるバージョンをいつでも確認できます。iOS、Android、Flutterのサポートされているバージョンへの更新は個別に扱われ、少なくとも1つ前のメジャーリリースの時点で、ChangeLogにて告知されています。
一部の新しいAPIや不安定になる可能性のあるAPIは、「APIリファレンス」で「ベータ」として指定されています。ベータリリースは、特に明記されている場合を除き、廃止のプロセスに従いません。ベータAPIを使用する場合は、バグが含まれている可能性があり、予期しない動作を示す可能性があることに注意してください。
HERE SDKで使用されるHEREバックエンドサービスについては、機能ライフサイクルポリシーを参照してください。
私たちはユーザーの皆様のフィードバックを大切にしており、さらなる改善のための提案に常に耳を傾けています。
7 日前の更新










