すでに自社サービスでプッシュ通知を提供している場合は、以下の手順をスキップできます。
Apple Developer サイトの [Certificates, Identifiers & Profiles] - [Keys] ページで、Apple Push Notifications service (APNs) を有効にしたキーを生成します。

Key IDを取得してください。発行された認証キー(.p8ファイル)は一度しかダウンロードできないため、紛失しないようご注意ください。

Team IDは、Apple Developerの [Account] - [Membership] ページで確認できます。

[Account] - [Membership] タブに移動し、Team IDを確認してください。

デスクトップ版のチャネルトークを起動し、[設定] - [セキュリティ・開発]- [モバイルSDK通知] セクションに移動します。

ダウンロードしたキーファイル(.p8)をアップロードし、Key ID、Bundle ID、および Team ID を入力してください。

チャネルトークでリモート通知を受信するために、initPushTokenを使用してデバイストークンを登録します。
以下の例を参考に、application(_:didRegisterForRemoteNotificationsWithDeviceToken:)メソッド内にinitPushTokenを追加してください。
アプリがバックグラウンドや終了状態のときにチャネルトークのリモート通知が届いた場合、その通知を保存しておくことで、アプリがフォアグラウンド(起動中)になった際に適切に表示させることができます。
以下は、ユーザーがプッシュ通知をタップした際の処理例です。通知がチャネルトークからのものである場合、SDKに通知の受信を知らせ、内容を保存します。
storePushNotificationを使用してチャネルトークのリモート通知を正常に保存できている場合、openStoredPushNotificationメソッドを呼び出すことで、保存されたプッシュメッセージを含むチャット画面を直接開くことができます。
チャネルトークのチャット画面を起動させたい ViewController に、以下の実装例を追加してください。
class ViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if ChannelIO.hasStoredPushNotification() {
ChannelIO.openStoredPushNotification()
}
}
}@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if ([ChannelIO hasStoredPushNotification]) {
[ChannelIO openStoredPushNotification]
}
}
@endプッシュ通知とSMSが同時に配信されるのを防ぐために、リモート通知が届いた際にチャネルへ通知する必要があります。
Capabilitiesタブに移動し、Background Modeを追加してください。Background fetchとRemote notificationの両方を有効にします。

Then, add the receivePushNotification method to notify Channel that a push notification has arrived successfully. Refer to the example below:
次に、プッシュ通知が正常に届いたことをチャネルに通知するために、receivePushNotificationメソッドを追加します。以下の例を参考にしてください。
この拡張機能を使用すると、アプリがバックグラウンドで実行されている場合や終了している場合でも、チャネルトークのリモートプッシュ通知を適切に処理できるようになります。
チャネルトークでは、この拡張機能の追加を推奨しています。これを追加しない場合、フォローアップのテキストメッセージとリモート通知の両方を受信してしまう可能性があります。
Xcodeのメニューから、[File] - [New] - [Target…] をクリックします。
ーゲット選択ウィンドウで、[Notification Service Extension] を選択します。

Xcodeによって新しいターゲットが作成されます。Swiftの場合は2つのファイル、Objective-Cの場合は3つのファイルが生成されます。
新しく生成されたファイルの詳細は以下の通りです。
NotificationService.swift:拡張ターゲット(Extension Target)の内部で使用するコードを記述します。Info.plist:拡張ターゲットのInfo.plistファイルです。
新しく作成された拡張ターゲットにSDKの依存関係を追加します。Podfileを以下のように修正してください。
新しく作成されたターゲットのプロジェクト設定に移動します。
Generalタブを開きます。Frameworks and LibrariesカテゴリにChannelIOFrontパッケージを追加します。

プロジェクトの言語設定に基づいて、以下の例を追加してください。