2012-12-08 27 views
5

Ho cercato una risposta a questo e non riesco a trovarlo. Invio notifiche PUSH a più versioni delle mie app. In precedenza ho impostato questo per eseguire il ciclo di ogni certificato e confrontarlo con il tipo di app degli utenti. Effettivamente, creo una nuova connessione SSL per ogni certificato e quindi invio qualsiasi notifica per quel particolare certificato.Certificati APNS multipli nello stesso file di certificato

È un po 'noioso convertire tutti questi certificati e installarli quando scadono. Posso esportare più certificati dall'accesso KeyChain come un singolo file p12 e convertirlo, il che aiuta a mantenere le cose più semplici da un punto di vista della gestione dei certificati. Il problema è che nessuna delle mie notifiche PUSH è stata ricevuta. Posso connettermi all'APNS con successo e nessun problema viene segnalato dal servizio di feedback, ma nulla sembra passare. Ciò mi porta a credere che l'APNS stia verificando solo il primo certificato nel file e ignorando tutti gli altri che consentirebbero una connessione riuscita, ma probabilmente impedirebbero la consegna delle notifiche. In questo caso mi aspetterei una connessione interrotta o qualcosa segnalato sul servizio di feedback e finora non ho visto nessuno dei due.

Qualcuno ha qualche idea per farlo con successo? Grazie.

risposta

3

Consentitemi di riaffermare che: avete più certificati raggruppati insieme in un singolo contenitore/collezione/qualsiasi cosa, e lo state usando per stabilire una sessione SLL reciprocamente autenticata con APNS. Quindi si invia una richiesta per uno o più dispositivi associati a uno dei certificati e non funziona. È esatto?

Se è così, allora penso che il tuo riassunto del problema sia corretto. La sequenza di eventi è che il certificato viene valutato durante la definizione della sessione SSL. Questo fa parte del protocollo di rete e, a quel punto, il server APNS DEVE scegliere quale certificato utilizzare. Quindi, quando si invia una richiesta, il "server delle applicazioni" convalida solo che il token del dispositivo contiene le stesse informazioni sull'account del certificato. Il tuo scenario non è banale e non c'è possibilità che funzioni, a meno che Apple non abbia esplicitamente investito gli sforzi nel supportarlo. In tal caso mi sarei aspettato che fosse menzionato nei documenti dello sviluppatore. Non lo è.

In tal caso, non verrà visualizzato alcunché nel servizio di feedback, poiché il feedback verrà raccolto/inviato solo per i dispositivi associati all'account nel certificato.

BTW se si utilizza il formato avanzato del protocollo APNS, è possibile leggere le risposte di errore durante l'invio. Vedi lo programming guide per maggiori informazioni.

+0

Sì, ce l'hai. Ho pensato che fosse il caso, volevo solo metterlo là fuori nel caso qualcuno fosse a conoscenza di un modo per farlo funzionare. Grazie per la conferma. – greg

Problemi correlati