目次
動作環境について
iOSのb→dash mobile SDKにおいて、推奨環境と動作環境について紹介します。
下記に、b→dash mobile SDK(v5.0.2)の推奨環境と動作環境についてまとめましたのでご参照ください。
iOS | Xcode | Swift | Objective-C | |
推奨環境 | 10.0以上 | 13.2のみ | 4.0/ 4.2/ 5.5 | 2.0のみ |
動作環境 | 10.0以上 | 12.1/ 12.2/ 12.3/ 12.4/ 12.5/ 13.0/ 13.1/ 13.2 | 4.0/ 4.2/ 5.5 | 2.0のみ |
SDKのインストール
ここではb→dash mobile SDKをXcodeのプロジェクトに設置する方法を説明します。
SDKファイルの紹介
b→dash mobile SDKは「BDash-Mobile-SDK_vX.X.X.zip」内に各種ファイルが格納されています。
※「BDash-Mobile-SDK_vX.X.X.zip」については、貴社のカスタマーサクセス担当からお渡しいたします
iOSファイル名称 | 概要 | 用途 | ||
ログ取得 | Push通知 | アプリ接客 | ||
tracking.plist | b→dash mobile SDKの定義ファイル | ○ | ○ | ○ |
Tracker.swift | b→dash mobile SDKの各種コードファイル | ○ | ○ | ○ |
AppDelegate.swift / AppDelegate.m | アプリ全体のライフイベントを管理するクラスを保持 | ○ | ○ | ○ |
BDashMobileSDK.xcdatamodeld | b→dash mobile SDKのデータベースモデル | ○ | ○ | ○ |
BDashNotificationService.swift | リッチ通知機能のコードファイル | - | ○ | - |
BDashWebReception.swift | アプリ接客用のコードファイル | - | - | ○ |
jp_co_f-scratch_closebutton.png | アプリ接客で利用するリソース画像 | - | - | ○ |
PrepareFCMToken.swift | 導入用サンプルファイル | - | - | - |
「BDash-Mobile-SDK_vX.X.X.zip」内の「Sampleディレクトリ」に「Push 通知」と「アプリ接客」のサンプルプロジェクトを同梱しています。
SDK組み込み時の参考資料としてご活用ください。
SDKファイルの組み込み
プロジェクトの使用言語がObject-Cの場合、組み込んだSDKファイルを参照するためにAPIを利用するクラスに以下の記述を行ってSDKファイルをインポートする必要があります。
#import "【プロジェクト名】-Swift.h"
※ プロジェクトの使用言語Swiftの場合はSDKファイルを組み込むだけでSDKファイルを参照することができます
「ログ取得」「Push通知」「アプリ接客」の3つの機能の内、一部のみ利用する場合でも「SDKファイルの紹介」にて紹介した7つのファイルすべて組み込んでください。
※ 各ファイルの依存関係があるため、一部のファイルを組み込まなかった場合は正常に動作しない可能性があります
SDKのバージョンアップをする場合は、提供したファイル内にある root ディレクトリ(解凍ディレクトリの直下)の「 SDKアップデート時に確認する項目について.txt」というファイルを必ずご確認ください。
プロパティリストへの設定値の入力
次にb→dash mobile SDKの設定ファイル(プロパティリスト)である「tracking.plist」に対して設定値を入力します。
b→dash mobile SDKの設定値を準備します
以下4つのb→dash mobile SDK設定値をご準備ください。「APP_BDASH_APP_GROUP_ID」のみ貴社でご用意いただくものとなります。
Plist属性名 | 値の内容 |
APP_BDASH_APP_ID | カスタマーサクセス担当より連絡した値を入力してください。 |
APP_BDASH_ACCOUNT_ID | カスタマーサクセス担当より連絡した値を入力してください。 |
APP_BDASH_DATA_VIEW | カスタマーサクセス担当より連絡した値を入力してください。 |
APP_BDASH_APP_GROUP_ID |
リッチ通知で利用するAPP GROUP IDです。
貴社のAppleDeveloperで設定した値を入力してください。 |
b→dash mobile SDKの設定値を入力します
Xcodeのプロジェクトのナビゲータエリア内に表示される「tracking.plist」をクリックし、tracking.plist内に準備した設定値を入力します。
「BDashNotificationService」にチェックを入れます
「BDashNotificationService」からも設定値を読み取れるように、Target Membership欄にある「BDashNotificationService」にチェックを入れます。
各種サービスとの連携
ここからは、b→dash mobile SDKを利用するために必要な、各種サービスとの連携手順について説明します。
b→dash mobile SDK 共通設定
b→dash mobile SDKを利用するにあたり「Firebase Cloud Messaging(FCM)」「CocoaPods」をインストールする必要があります。
Firebase Cloud Messaging(FCM)はGoogleが提供しているモバイル・Webアプリケーション開発プラットフォームです。b→dashではFCM利用してSDKを実装します。
CocoaPodsはiOS/Mac向けアプリ開発のライブラリ管理システムです。b→dashのSDK実装に利用するライブラリを管理するため必要となります。
Firebase Cloud Messaging(FCM), CocoaPodsの詳細については以下の公式ドキュメントをご参照ください。
– Firebase Cloud Messaging | Firebase Documentation
– CocoaPods.org
CocoaPodsとFirebase Cloud Messaging(FCM)のインストール
以下バージョンの「Firebase Cloud Messaging(FCM)」「CocoaPods」をインストールします。
– FCMバージョン : 7.10.0
– CocoaPodsバージョン : 1.11.3
## Podfile への導入例
pod 'Firebase/Core','7.10.0'
pod 'Firebase/Messaging','7.10.0'
Firebase Cloud Messaging(FCM)のメジャーバージョンが異なると、FCMの管理画面が異なるため、本サポートサイトで紹介している操作手順と差異が生じる可能性があります。
b→dash mobile SDKを実装するにあたり、SDKメジャーバージョン番号を揃えて開発していただくことを推奨しております。
※ b→dash SDK v5.0.0以降では、プッシュ通知機能のSDKファイル自体にFCMライブラリとの依存性はないため、FCMトークンのSDKへのセットが可能であれば、理論上FCMのバージョンに関わらずb→dashSDKをご利用いただくことができます。
Push通知を行う場合の追加設定
以下では、b→dash mobile SDKを用いてPush通知を行いたい場合の追加設定を説明します。
➊『HTTP v1 API』を利用する場合
Push通知の配信に『HTTP v1 API』を利用する場合は、はじめに「Firebase Console」にて「秘密鍵」を生成する必要があります。
「秘密鍵」の生成方法については、「Push通知の送信元を設定したい」の『秘密鍵の生成方法』をご参照ください。
[参考:Firebase Console]
➋ Firebaseプロジェクトの準備
FCM を利用する際は、b→dashSDK を導入する予定のアプリを Firebase プロジェクトへと追加する必要があります。
b→dashSDK を導入する予定のアプリを Firebase プロジェクトへと追加します
以下の公式ドキュメントを参照して貴社で Firebase プロジェクトを作成し、b→dashSDKを導入する予定のアプリを追加します。
Firebase を Apple プロジェクトに追加する | Firebase Documentation
– ステップ 1:Firebase プロジェクトを作成する
[GoogleService-Info.plistをダウンロードします
以下の公式ドキュメントを参照して、Firebase プロジェクトからFirebase 構成ファイルである 「[GoogleService-Info.plist」をダウンロードします。
Firebase を Apple プロジェクトに追加する | Firebase Documentation
Firebaseプロジェクトへ「[GoogleService-Info.plist」を追加します
Xcodeのプロジェクトのナビゲータエリア内の任意の場所を右クリックし、「Add Files to “ターゲット名”」 を選択します。
その後、GoogleServiece-Info.plistを選択し「Add」をクリックします。
❸ XcodeプロジェクトのPush通知を有効にする
b→dash mobile SDKでPush通知を実装するにあたり、XcodeプロジェクトファイルのPush通知を有効化する必要があります。
プロジェクト設定を開き + Capability から、Push Notification の追加を行います
Push Notification が追加されたことを確認できます
➍ プロパティリストへの設定値の追加
「Firebaseプロジェクトの準備」にてFirebaseプロジェクトへ導入した「GoogleServiece-Info.plist」に、Push通知を実装するのに必要な設定値を再度追加する必要があります。
プロジェクト内の「Info.plist」にFirebaseAppDelegateProxyEnabled(Boolean) のプロパティを追加し、バリューに「0」を設定します
❺ AppDelegateクラスへのコード追加
アプリ作成時に自動で生成されるAppDelegateクラスに対して、zip付属の下記のファイルから必要部分のソースコードの取込みを行ってください。
※取込む範囲・修正が必要な範囲についてはソースコード内に記載しておりますのでご確認ください
【プロジェクト使用言語と参照するzip付属ファイル】
Swift 言語:AppDelegate.swift
Objective-C 言語: AppDelegate.m
b→dashのSDK内に同封されている「AppDelegate.swift」では、以下のフレームワークを使用しています。
・import Firebase
・import UserNotifications
・import CoreData
・import AVFoundation
・import AudioToolbox
・import SystemConfiguration
・import UIKit
リッチPush通知を行う場合の追加設定
リッチPush通知を行う場合は「通知設定を行う場合の追加設定」に加えて以下の追加設定を行う必要があります。
App Group の設定
「リッチプッシュ通知」の配信をご希望の場合、AppleDeveloper にてプッシュ通知および App Group が有効である証明書を用意し、App Group のIdentifiers をアプリ本体の証明書および Extension の証明書と紐づける必要があります。
Apple DeveloperにログインしてIdentifiersからApp Groupを生成します
Idntifirersにはの APP_BDASH_APP_GROUP_IDを設定します。
生成した App Group の Identifiers をアプリ本体の証明書および Extension の証明書と紐づけします
アプリ証明書の設定(Certificates, Indentifiers & Profiles)を開き、「App Groups」にチェックをいれ、「Edit」をクリックします。
App Groupの割り当て設定を変更します
tracking.plistのAPP_BDASH_APP_GROUP_IDにチェックを入れて、「Continue」をクリックします。確認画面が表示されるので、「Assign」をクリックします。
NotificationServiceExtensionはアプリ本体とは別として扱われるため証明書も別途で必要になります。既に利用している場合は、AppGroupの紐づけのみを行ってください。
XCode の設定
続いて、Appleの統合開発環境であるXcodeにもApp Groupの設定を行う必要があります。
XcodeのProjectのTargetに「NotificationServiceExtension」を追加します
※既にNotificationServiceExtensionを利用している場合は不要です
App Groupsを有効に設定し、App Group IDを選択します
アプリ本体とNotificationServiceExtensionには同じApp Group IDを指定してください。
NotificationService.swiftへのコード追加
自動で生成されたNotificationService.swift に zip 付属の「BDashNotificationService.swift」から必要に応じてソースコードのコピーを行います。
Notification Service Extensionを未実装の場合は中身をそのままコピーしてください。
アプリ側でアプリとb→dashどちらで処理するか、メソッドを分けて頂く必要があります。
「コピーする範囲・修正する範囲」については、ソースコード内に記載しております。
[参考]SDKのセキュリティ仕様
■暗号化について
SDK では https 通信を利用することでネットワークデータは暗号化されています。ローカルデータについては、暗号化はされておりません。
■各プラットフォームでデータが保持されている場所
iOS:Library/Application Support
上記の領域は、Jailbreak(脱獄)を行わない限り、他の不正なアプリやユーザーが直接アクセスすることはできません。
■データのデータの保存形式について
iOSはCoreData で保持されています。内部的には SQLite形式となっています。