Xcodeプロジェクトの設定¶
RichFlyer SDKを利用するために、XCodeプロジェクトの設定を行います。
手順¶
- Push Notificationsの有効化
- Time Sensitive Notificationsの有効化
- App Groupsの有効化
- Background Modeの有効化
- App Extensionの追加
- App ExtensionのApp Groupsを有効化
- Notification Content ExtensionのInfo.plistの設定
- App Extensionのローカライズ
Push Notificationsを有効にする¶
- プロジェクトの設定画面を開き、 TARGETS からプッシュ通知を利用するものを選択します。
- 上部タブメニューで「Signing & Capabilities」を選択します。
-
中央の画面から「+」をクリックします。
-
Capabilityの一覧から「Push Notifications」を選択してXcodeにドラッグ&ドロップします。
-
Xcodeに「Push Notifications」が追加されます。
Time Sensitive Notificationsを有効にする。¶
-
中央の画面から「+」をクリックします。
-
Capabilityの一覧から「Time Sensitive Notifications」を選択してXcodeにドラッグ&ドロップします。
-
Xcodeに「Time Sensitive Notifications」が追加されます。
App Groupsを有効にする¶
-
中央の画面から「+」をクリックします。
-
Capabilityの一覧から「App Groups」を選択してXcodeにドラッグ&ドロップします。
-
利用するApp Groupsを選択します。
App Groupsの作成手順例はこちら
Backgrounds Modesを有効にする¶
-
中央の画面から「+」をクリックします。
-
Capabilityの一覧から「Background Modes」を選択してXcodeにドラッグ&ドロップします。
-
Modes一覧の「Remote Notifications」にチェックを入れます。
App Extension(拡張機能)の追加¶
ここでは次の2つのApp Extensionを追加します。
- Notification Content Extension
- Notification Service Extension
以下に記述する説明はNotification Content Extensionの追加手順ですが、Notification Service Extensionも同じ手順で追加します。
-
Xcodeメニューの「File」-「New」-「Target」を選択します。
-
「Notification Content Extension」を選択して「Next」ボタンをクリックします。
-
"Bundle Identifier"がNotification Content Extension用に作成したApp IDと同じになるように、"Product Name"に値を入力します。入力が完了したら「Finish」ボタンをクリックします。
(参考)App IDの編集画面 -
「Activate」ボタンをクリックします。
-
ビルド設定画面の"TARGETS"に拡張機能が追加されていることを確認します。
App ExtensionのDeployment Target
App Extensionにも Deployment Target が設定されます。
初期状態では最新のOSバージョンが設定されていますので、アプリ本体と合わせるようにしてください。
アプリ本体の設定より高い値を設定した場合、OSバージョンによってApp Extensionが動作しないのでご注意ください。
設定完了
"Notification Service"と"Notification Content"の設定が完了するとプロジェクトには2つのExtensionが表示されるようになります。
設定したExtensionの名前のディレクトリの下に、Extension用のソースコードファイルが生成されます。
App ExtensionのApp Groupsを有効にする¶
- プロジェクトの設定画面を開き、 TARGETS から追加したApp Extensionを選択します。
- 上部タブメニューで「Signing & Capabilities」を選択します。
- 中央の画面から「+」をクリックします。
- 「App Groups」をXcodeにドラッグ&ドロップします。
- 利用するApp Groupsを選択します。
- Notification Service Extension と Notification Content Extension の両方に対して設定します。
- アプリ本体側に設定したApp Groupsと同じものを使用します。
Notification Content ExtensionのInfo.plistの設定¶
- Notification Content ExtensionのInfo.plistを選択します。
- NSExtension→NSExtensionAttributesに以下の値を設定します。
Key | Type | Value |
---|---|---|
UNNotificationExtensionDefaultContentHidden | Boolean | YES(1) |
UNNotificationExtensionCategory | String | RichFlyer |
UNNotificationExtensionUserInteractionEnabled | Boolean | YES(1) |
UNNotificationExtensionUserInteractionEnabled はiOS12以降で使用できます。
YES の場合、動画表示領域では再生ボタンと一時停止ボタンのみが操作可能になり、メッセージ表示領域をタップするとアプリが起動します。再生時のボタン外の誤タップによるアプリ起動が防げます。
NO の場合、動画表示領域とメッセージ表示領域をタップするとアプリが起動するようになります。
YES を指定した場合 | NO を指定した場合 |
赤枠内タップ...再生 / 一時停止 青枠内タップ...アプリ起動 |
App Extensionのローカライズ¶
作成したApp ExtensionのInfo.plistにローカライゼーションの設定を追加します。
ローカライゼーションに"Japanese"を追加しない場合、お客様で作成した通知メッセージ以外の文字列が英語で表記されます。
App Transport Security(ATS)について
プッシュ通知に添付する動画や画像をお客様のサーバで配信する場合、ATSに非対応だとコンテンツの受信ができなくなります。
その場合は、アプリ側でATSを回避する設定をする必要があります。
詳しくは公式サイトの説明を参照ください。