はじめに

概要

Push通知へ画像を追加するRich Notification機能を実装する際は、複雑で複数の証明書類の作成および設定が必要になる。

本番環境のみのプロジェクトでこれを行なう場合は、Webの情報でなんとか設定できそうだが、本番とSTGのような複数の環境を持ったプロジェクト用の情報はWebで見つけられなかった。

このような状況でどんな証明証類と設定が必要かを記述する。

細かい設定方法等は省いてあるので、他のページ等を参考にしてもらいた。他のページから得たある程度の知識があれば、その後このページを参照することで、本番とSTGの両方に対応したRich Notificationの実装を行うことができるようになるだろう。

実現すること

1つのNotificationServiceExtensionのターゲットとUNNotificationServiceExtensionのクラスファイルを本番とSTGで共有させる。

必要な前提知識

  1. Build Configを使って本番とSTG等の複数の環境を作ることへの理解。 参考: Staging用の環境設定をXcodeに追加する
  2. NotificationServiceExtensionの実装に関する最低限の知識 etc.

今回記載しないこと

以下の内容等は他のページを参考にしてもらいたい。

  • 個々項目の具体的な操作設定方法
  • NotificationServiceExtensionターゲットの作成
  • UNNotificationServiceExtensionクラス内の実装コード
  • Xcode内でのProvisioning Profileの設定等 etc.

概念一覧

Group

  • MyAppGroup

App

  • MyApp
  • MyAppSTG

Extension ID

  • MyApp.MyPushExtension
  • MyAppSTG.MyPushExtensionSTG

Extension

  • MyPushExtension

1. App Group

開発者ページで一つだけ作成

  • MyAppGroup

2. App ID

App Extensionは個別にApp IDが必要となる。

開発者ページ全てのIDのAppGroupを有効にする必要がある。

Appそのもの用

  • MyApp
  • MyAppSTG

Extension用

AppID名を親となるAppの名称に合わせる必要がある。

  • MyApp.MyPushExtension
  • MyAppSTG.MyPushExtensionSTG

3. Provisioning Profile

AppIDでAppGroupの設定を変更したタイミングで、これらの内の既に作成済みのものはInvalidとなる。それらは再度作成することになる。

Appそのもの用

  • MyApp
  • MyAppSTG

Extension用

App Extensionは個別のProfileを作成する必要がある。

  • MyPushExtension
  • MyPushExtensionSTG

4. Xcode内Target設定

Build ConfigのBundleID設定と、AppGroupの有効可の設定をする。

Bundle IDを設定

MyAppのターゲットでは、一般的にPrduction, STGの環境を構築した際にすでにこの設定になっている。

MyPushExtensionのターゲットへは、MyAppのターゲットと同じ手順で、Production, STGの環境に対応したBundleIDを設定する。
これは前項で作成したAppIDと同じものを入れる。

AppGroupの有効化

MyAppとMyPushExtensionの双方のターゲットのCapabilitiesタブで、AppGroupを有効にする。その際、前項で作成したAppGroupを選択する(一つしかグループを作成していないので、他の選択肢は画面に出てこない)。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.