web-dev-qa-db-ja.com

プッシュ通知がテストフライトで機能しないのはなぜですか?

私は開発者アカウントとしてプッシュ通知をテストしましたが、動作しますが、テスターがテストするためにTestFlightに配置しようとしても、プッシュ通知は表示されませんでしたが、データは正しく受信されました。 TestFlight用に生成する必要がある証明書

71
Iman

しかし、テスターがテストするためにTestFlightに配置しようとすると、プッシュ通知は表示されませんでしたが、データは正しく受信されました。

その文は紛らわしいです。プッシュ通知を受け取らなかった場合、どのデータが正しく受信されますか?

とにかく、正しく思い出せば、TestFlightにはAdHocプロビジョニングプロファイルを使用しており、本番プッシュ環境で動作します。したがって、TestFlightを介してアプリをインストールしたデバイスにプッシュするには、本番プッシュ証明書が必要です。さらに、開発デバイストークンは本番デバイストークンとは異なることを忘れないでください。正しいトークンを使用していることを確認してください。

80
Eran
  1. Testflightビルドには実動証明書を使用する必要があります。
  2. また、プッシュ送信スクリプトのプッシュ通知URLからsanbox(サンドボックスモード)を削除する必要があります。
40
Sandeep

Firebaseを使用する場合、次を追加する必要があります。

  • TestFlight:

    -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeSandbox]; 
    }
    
  • 製造:

    -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        [[FIRInstanceID instanceID] setAPNSToken:deviceToken type:FIRInstanceIDAPNSTokenTypeProd]; 
    }
    
12
delarcomarta

TestFlightの場合、使用

  1. 生産証明書
  2. サーバーの「gateway.Push.Apple.com」(バックエンドジョブ)
5
Md Rais

gCMを使用した場合。開発中:-

_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
                             kGGLInstanceIDAPNSServerTypeSandboxOption:@YES};

配布中:-

_registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken,
                             kGGLInstanceIDAPNSServerTypeSandboxOption:@NO};
5
Ahmed Abdallah

誰かがPython apnshttps://github.com/djacobs/PyAPNs )を使用する場合:

apns = APNs(cert_file="cert.pem", key_file="key.pem")などのAPNSオブジェクトを作成するとき。もう1つのパラメーターuse_sandboxを追加する必要があります。 apns = APNs(use_sandbox=False, cert_file="cert.pem", key_file="key.pem")になります。

ハッピーコーディング。

1
Luat Vu Dinh

通知を送信するには、開発用と本番用の2つの証明書が必要です。私の場合、PushSharpソリューションを使用して通知を送信しています。

これは開発用です。

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Sandbox, "development.p12", "password");
var broker = new ApnsServiceBroker(config);

これは実稼働用です。

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, "production.p12", "password");
var broker = new ApnsServiceBroker(config);
1
Lokesh Goud

Info.plistファイルでFirebaseAppDelegateProxyEnabledYESに設定したことを確認してください。

0
AnupamChugh