iOS用SDKを導入したい

動作環境について

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のみ
アプリ接客のサポート対象外のiOSバージョン
アプリ接客機能はiOS10系では公式バグフィックスが適用された「iOS 10.3」のみサポートしております。iOS10系では「iOS 10.0」「iOS 10.1」「iOS 10.2」がサポート対象外となりますのでご注意ください。

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 導入用サンプルファイル - - -
zip同梱のサンプルプロジェクトについて

「BDash-Mobile-SDK_vX.X.X.zip」内の「Sampleディレクトリ」に「Push 通知」と「アプリ接客」のサンプルプロジェクトを同梱しています。
SDK組み込み時の参考資料としてご活用ください。

SDKファイルの組み込み
Xcodeのプロジェクトのナビゲータエリア内の任意の場所を右クリックし、「Add Files to “ターゲット名”」 を選択します

カスタマーサクセス担当から共有されたSDKファイルを選択し「Addをクリックします
[Objective-Cのみ] 追加時に以下のダイアログが表示された場合「Create Bridiging Header」をクリックします

SDKファイルが取り込まれていることを確認します

[Objective-Cのみ] SDKファイルの参照方法

プロジェクトの使用言語がObject-Cの場合、組み込んだSDKファイルを参照するためにAPIを利用するクラスに以下の記述を行ってSDKファイルをインポートする必要があります

#import "【プロジェクト名】-Swift.h"

※ プロジェクトの使用言語Swiftの場合はSDKファイルを組み込むだけでSDKファイルを参照することができます

組み込み対象とするSDKファイル

「ログ取得」「Push通知」「アプリ接客」の3つの機能の内、一部のみ利用する場合でも「SDKファイルの紹介」にて紹介した7つのファイルすべて組み込んでください
※ 各ファイルの依存関係があるため、一部のファイルを組み込まなかった場合は正常に動作しない可能性があります

SDKバージョンジョンアップ時の対応

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」にチェックを入れます。

Targetへ「BdashNotificationService」の追加が必要となるケース
「BDashNotificationService」は主にリッチ通知機能用ですが、依存関係があるため「ログ取得」「Push通知」「アプリ接客」のいずれの機能を利用する場合もチェックを入れるようようお願いします

各種サービスとの連携

ここからは、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)のバージョンについて

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プロジェクトの準備」に進んでください。
➋ 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」を設定します

プロパティを設定しない(又は値を「1」にしてしまう)と、「Push通知の同期」の動作に不備が起きます。
❺ AppDelegateクラスへのコード追加

アプリ作成時に自動で生成されるAppDelegateクラスに対して、zip付属の下記のファイルから必要部分のソースコードの取込みを行ってください
※取込む範囲・修正が必要な範囲についてはソースコード内に記載しておりますのでご確認ください

【プロジェクト使用言語と参照するzip付属ファイル】
Swift 言語:AppDelegate.swift
Objective-C 言語: AppDelegate.m

「AppDelegate.swift」で利用しているフレームワーク

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を未実装の場合は中身をそのままコピーしてください。

既にNotification Service Extensionを利用している場合

アプリ側でアプリとb→dashどちらで処理するか、メソッドを分けて頂く必要があります。
「コピーする範囲・修正する範囲」については、ソースコード内に記載しております。

[参考]SDKのセキュリティ仕様

■暗号化について
SDK では https 通信を利用することでネットワークデータは暗号化されています。ローカルデータについては、暗号化はされておりません。

■各プラットフォームでデータが保持されている場所
iOS:Library/Application Support
上記の領域は、Jailbreak(脱獄)を行わない限り、他の不正なアプリやユーザーが直接アクセスすることはできません。

■データのデータの保存形式について
iOSはCoreData で保持されています。内部的には SQLite形式となっています。