Registering Your App with APNs

8679 ワード

https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
"Communicate with Apple Push Notification service (APNs) and receive a unique device token that identifies your app."
アプリケーション・パブリック・サービス(APNs)との通信およびアプリケーションの識別のためのユニークなアプライアンス・トークンが受信されます.

Overview


アプリケーション名サービス(APNs)は、ユーザデバイスに送信する前に、ユーザデバイスのアドレスを知る必要があります.このアドレスは、デバイスおよびアプリケーションからの一意のデバイストークンの形式を受け入れる.起動時、アプリケーションはAPNsと通信し、APNsのデバイストークンを受信します.プロバイダサーバに後で渡されるトークン.サーバは、送信するすべてのターゲットアプリケーションにタグを含める必要があります.
Note
1つのアプリケーションのデバイストークンは、2つのアプリケーションが同じデバイスにインストールされていても、別のアプリケーションでは使用できません.2つのアプリケーションは、それぞれ一意のデバイストークンを要求し、プロバイダサーバに転送する必要があります.

Enable the Push Notifications Capability


アプリケーションに必要な権限を追加するには、Figure 1に示すようにプッシュ機能を有効にする必要があります.iOSでこのオプションを有効にすると、アプリケーションにAPS環境タイトルが追加されます.MacOSには「APS環境」(MacOS)というタイトルが追加されます.詳細については、Push通知の有効化を参照してください.
Enable push notifications
https://help.apple.com/xcode/mac/current/#/devdfd3d04a1
Figure 1 Enabling the push notifications capability

Important
開発者アカウントでは、プロジェクトに割り当てられたアプリケーションIDのプッシュサービスを有効にする必要があります.開発者アカウントの設定の詳細については、「開発者アカウント」ページに移動します.
Developer Account
https://idmsa.apple.com/IDMSWebAuth/signin?appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757&path=%2Faccount%2F&rv=1#/overview/

Register Your App and Retrieve Your App's Device Token


APNsとともにアプリケーションを登録し、グローバルで一意のアプライアンストークンを取得する必要があります.コインは灰燼アプリの住所です.元のアプリケーションをアプライアンスに送信するには、プロバイダ・サーバにこのタグが必要です.
アップルが提供するAPIを使用すると、アプリケーションを起動するたびにアプリケーションを登録し、デバイストークンを取得できます.登録プロセスはプラットフォームで似ています.
  • iOSおよびtvOSは、デバイストークンを要求するためにUIApplicationregisterForRemoteNotifications()メソッドを呼び出す必要がある.登録が成功すると、トークンは、アプリケーション遅延ゲートのapplication(_:didRegisterForRemoteNotificationsWithDeviceToken:)メソッドから取得される.
  • MacOSは、NSApplicationregisterForRemoteNotifications()を呼び出してデバイストークンを要求する必要がある.登録が成功すると、トークンは、アプリケーション遅延ゲートのapplication(_:didRegisterForRemoteNotificationsWithDeviceToken:)メソッドから取得される.
  • APNsを用いて正常な登録を処理するほか、登録に失敗した場合に処理を行うためのapplication(_:didFailToRegisterForRemoteNotificationsWithError:)の方法を実施しなければならない.デバイスがネットワークに接続されておらず、何らかの理由でAPNsサーバに接続できない場合は、アプリケーションが適切なcode-signating資格を持っていない限り、登録に失敗します.失敗した場合は、タグを設定し、後で再登録してみてください.
    Listing 1は、リモートアクティブ化登録および対応するトークンを得るために必要なiOSアプリケーション遅延ゲートウェイ方法の一例を提供する.sendDeviceTokenToServer方法は、プロバイダサーバにデータを送信するためのアプリケーションのカスタマイズ方法である.
    Listing 1 Communicating with APNs at launch time
    func application(_ application: UIApplication,
               didFinishLaunchingWithOptions launchOptions:
               [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
       // Override point for customization after application launch.you’re         
       UIApplication.shared.registerForRemoteNotifications()
       return true
    }
    
    func application(_ application: UIApplication,
                didRegisterForRemoteNotificationsWithDeviceToken 
                    deviceToken: Data) {
       self.sendDeviceTokenToServer(data: deviceToken)
    }
    
    func application(_ application: UIApplication,
                didFailToRegisterForRemoteNotificationsWithError 
                    error: Error) {
       // Try again later.
    }
    Important
    アプライアンスタグをローカル・リポジトリにキャッシュしないでください.ユーザーがバックアップからアプライアンスをリカバリすると、APNsはユーザーがアプリケーションを新しいアプライアンスにインストールすると、ユーザーがOSを再インストールしたときに新しいトークンを発行します.システムにトークンを要求するたびに、システムは最新のトークンを取得することを保証します.

    Forward Tokens to Your Provider Server


    アプライアンストークンを受信すると、アプリケーションとプロバイダサーバのネットワーク接続を開く必要があります.セキュリティ上の理由から、アプライアンストークンおよびその他の特定のユーザーを識別するために必要な情報をサーバに安全に渡す必要があります.たとえば、ユーザーのログイン名またはサービスに接続されているコンテンツが含まれます.ネットワークを介して送信されるすべての情報は暗号化する必要があります.
    プロバイダサーバから検証を送信するために、開発者がトークンにアクセスして安全な場所に保存できることを確認してください.ターゲット・アプリケーションを作成する場合は、サーバがターゲット・アプリケーションを特定のデバイスに送信できる必要があります.ターゲット・アプリケーションがユーザーのアカウントに接続されている場合は、アプライアンス・タグをユーザーのアカウント情報とともに保存する必要があります.ユーザは複数のデバイスを持つことができるため、複数のデバイストークンを処理するためにアプリケーションを準備する必要がある.
    ペイロードとアプライアンストークンをAPNsに送信する方法の詳細については、「APNsに通知リクエストを送信する」を参照してください.
    Sending Notification Requests to APNs
    https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns
    https://velog.io/@panther222128/Sending-Notification-Requests-to-APNs

    See Also


    Remote Notifications


    Setting Up a Remote Notification Server


    エンティティ・アプリケーションを作成し、ユーザー・アプライアンスにプッシュします.
    https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server
    https://velog.io/@panther222128/Setting-Up-a-Remote-Notification-Server

    Sending Push Notifications Using Command-Line Tools


    基本的なMacOSコマンドラインツールを使用して、アプリケーションサービス(APNs)にプッシュアプリケーションを送信します.
    https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools
    https://velog.io/@panther222128/Sending-Push-Notifications-Using-Command-Line-Tools