質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

2023閲覧

iOSのVoipプッシュが受け取れません

art_of

総合スコア21

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/10/06 02:25

編集2019/10/06 07:37

iOSのアプリ開発を行っていて、voipプッシュ通知の実装をしようとしています。
方法としては、アプリ起動時に受け取ったデバイストークンでAWSのSNS機能を使って送信を行うというものになります。

通常のプッシュ通知はAWS SNS上で送信成功して、デバイス側にも通知はくるのですが、
voipプッシュ通知を送信した時にはAWS SNS上で送信成功していますが、swift側でバックグラウンドで動くはずのメソッドが実行されません。

AppleDelegate.swiftは以下のようにしていて、
設定ではSigning&CapabilitiesでBackground Modesのvoice over IPにチェックを入れています。

AppDelegate.swift

import UIKit import CoreData import UserNotifications import PushKit import Alamofire import CallKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var skywayAPIKey:String? = "..." var skywayDomain:String? = "..." var backgroundTaskID = UIBackgroundTaskIdentifier.invalid var timer: Timer? var pushRegistry:PKPushRegistry! class var shared: AppDelegate { return UIApplication.shared.delegate as! AppDelegate } func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { pushRegistry = PKPushRegistry(queue: nil) pushRegistry.delegate = self // PKPushRegistryDelegateを採用していす pushRegistry.desiredPushTypes = Set([PKPushType.voIP]) return true } ...略... } extension AppDelegate: PKPushRegistryDelegate { func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) { let pkid = pushCredentials.token.map { String(format: "%02.2hhx", $0) }.joined() print("your device token:(pkid)") } func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType) { guard type == .voIP else { return } print("received voip!!!!!!!!!!!!!!!!!!!") } }

your device token: ... は出力されますが、received voip!!!!!!!!!!!!!!!!!!!は出力されません。

ちなみに、バージョンは以下になります

swift version 5.0.1 xcode 11.0

これで一週間以上詰まっています。
何かアドバイスや解決方法を教えていただければ幸いです。
よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問