Sto usando questo codice Ruby per ricevere gli errori da APN su spinte infruttuosi:Collegamento a prod APN con lo sviluppo cert
if IO.select([ssl], nil, nil, 5)
read_buffer = ssl.read(6)
process_error_response(read_buffer)
end
ho notato una strana situazione in cui IO.select non è pari a zero, ma restituisce un read_buffer stringa vuota. Dopo un po 'di debug mi sono reso conto che questo si verifica se ti colleghi a gateway.push.apple.com con un certificato APN di sviluppo, e la stessa cosa sembra accadere se ti connetti a gateway.sandbox.push.apple.com con un certificato di produzione.
C'è un modo per rilevare a livello di codice che questo è il caso, ad es. se ti è stato fornito un certificato push da un utente e hai detto che è produzione/sviluppo ma non puoi effettivamente verificarlo sul sito degli sviluppatori Apple? Avrei pensato che la connessione sarebbe stata respinta, ma invece sembra essere creata ma in uno stato parzialmente rotto.