Soru Push bildirimleri neden testflight üzerinde çalışmıyor?


Bir geliştirici hesabı olarak push bildirimlerini test ettim ve işe yaradı, Ama test kullanıcıları için TestFlight'ı test etmeye çalıştığında, itme bildirimi göstermedi, ancak veriler doğru bir şekilde alındı, Yani bir çeşit TestFlight için oluşturmam gereken sertifika


54
2018-06-04 17:54


Menşei


Bir dağıtım yapısı olduğu için TestFlight için üretim sertifikası kullanın ve bildirimi göndermek için sanal alan URL'si yerine ssl: //gateway.push.apple.com: 2195 kullanın. - Tarun Seera


Cevaplar:


Ancak test kullanıcıları için TestFlight'ı test etmeyi denediğimde, itme bildirimi göstermedi, ancak veriler doğru bir şekilde alındı.

Bu cümle kafa karıştırıcı. İtme bildirimini almadıysanız, hangi veriler doğru şekilde alındı?

Her neyse, doğru bir şekilde hatırlarsam, TestFlight için, üretim itme ortamı ile çalışan bir AdHoc hazırlama profili kullanıyorsunuzdur. Bu nedenle, TestFlight aracılığıyla uygulamayı yükleyen cihazlara geçmek için bir üretim push sertifikası gerekir. Ayrıca, geliştirme aygıtı belirteçlerinin üretim aygıtı belirteçlerinden farklı olduğunu unutmayın, bu nedenle doğru simgeleri kullandığınızdan emin olun.


69
2018-06-04 18:47



Dokümanlarda üretim aygıtı belirteçleri hakkında hiçbir şey görmedim - bunu biraz belirtebilir misiniz? - Peter Piper
@PeterPiper If the token came from the sandbox environment, such as when you are testing a development build in house, you can't send it to the production push service. Each push environment will issue a different token for the same device or computer. If you do send a device token to the wrong environment, the push service will see that as an invalid token and discard the notification. dan alınan İşte. - Eran
Sevgili @Eran, üretim sertifikasının nasıl oluşturulacağını gösteren herhangi bir eğiticiniz var mı? - user3751548
Bu, GameKit Bildirimleri için de geçerli olur mu? - tallis
@tallis Bilmiyorum. - Eran


1. testflight inşa etmek için üretim sertifikası kullanmanız gerekir. 2. Ayrıca push gönderme komut dosyasında push bildirimi url'sinden sanbox'ı (sandbox mode) kaldırmanız gerekir.


32
2017-12-10 18:23



# 1 hatırlamam gereken şeydi. Teşekkürler. - B.Y
Test etme: gateway.sandbox.push.apple.com Üretim: gateway.push.apple.com - mc.


Firebase'i kullanıyorsanız, şunları eklemeniz gerekir:

  • Test uçuşu:

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

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

11
2017-09-13 12:00



Bu çok aptalca bir soru olabilir, ama ikisini birden yaparsan ne olur? - Gábor Angyal
@ GáborAngyal - Ne olduğunu açık değil. İlginç olan bu cümledir "Belirteç türü FIRInstanceIDAPNSTokenTypeUnknown olarak ayarlanmışsa InstanceID belirteci türünü bulmak için temel hazırlık profilini okuyacaktır." itibaren Firebase API FIRInstanceID setAPNSToken: tür:. Mantıken, diyor ki herkes sadece yapabilirdi type: FIRInstanceIDAPNSTokenTypeUnknownBöylece, bunu değiştirmeyi hatırlamamız gerekmiyor. Bunu kendim denemedim ... - ToolmakerSteve
Kullanarak denedim FIRInstanceIDAPNSTokenTypeUnknown valuef veya type argümanı ve testflight üzerinde push bildirimi alabildiğimi onaylayabilir - Tope
Firebase 4.0 yeni Swift sözdizimi ile artık Messaging.messaging (). setAPNSToken (deviceToken, type: .unknown) - dmathewwws


GCM kullandıysanız. Geliştirilmekte:-

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

Dağıtımda: -

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

5
2018-04-05 10:59





TestFlight için kullan

  1. Üretim sertifikası
  2. Sunucuda "gateway.push.apple.com" (arka uç işi)

2
2018-02-20 17:25





Bildirimler göndermek için, biri geliştirme için ve üretim için bir tane olmak üzere iki sertifikaya ihtiyacımız var. Benim durumumda bildirim göndermek için PushSharp çözümü kullanıyorum.

Bu gelişim için:

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

Bu Üretim için:

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

0
2017-08-02 08:21