2010-02-18 26 views
7

Uygulamama push bildirimleri eklemeye çalışıyorum. Özel bir profil kullanıyorum. Uygulamamın bir joker karakteri yok. Ben ... Aşağıdaki php kodunu kullanıyorum Apple Push Bildirim Hizmeti APNS - Bildirimler gelmiyor

$deviceToken="****";masked 
$time = time(); 

$apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195; 
$apnsCert = 'apns-dev-maui.pem'; 

$streamContext = stream_context_create(); 
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert); 

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext); 
if($apns) 
{ 
echo "Connection Established<br/>"; 
$payload = array(); 
$payload['aps'] = array('alert' => 'It works!!', 'badge' => 1, 'sound' => 'default'); 
$payload = json_encode($payload); 
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload; 

     print "sending message :" . $apnsMessage . "<br/>"; 
     print "sending payload :" . $payload . "<br/>"; 
     fwrite($apns, $apnsMessage); 

} 
else 
{  
     echo "Connection Failed"; 
     echo $errorString; 
     echo $error; 
} 
// socket_close($apns); 
fclose($apns); 

hatalar oluşturulur Bağlantı

. Geri bildirim kanalından gelen hiçbir şey yok gibi görünüyor.

Ben organizatör konsolu ve bir NSLog komutundan deviceTokens aldık. Bu uygulama için bildirimler ayarlarım menüsünde gösteriliyor.

Ben bir ATT 3G ve ben bir iPod olarak kullanmak eski 2G var. Ne işe yaramıyor.

hata bakmak için, ben fikir yokum. Herhangi bir fikir sahibi olan var mı?

Jennifer

+0

Push bildirimleri göndermek için iki farklı .pem (sertifika dosyaları) kullanabilir miyiz? Mümkün mü? –

cevap

24

Sonunda anladım. Sandbox'ı bir AdHoc hazırlık profili ile kullanıyordum. Ad Hoc, görünüşte gelişme yerine üretim olarak kabul edilir. İtme üretim sertifikasını oluşturdum, kurdum ve voila! İşe yarıyor.

+1

Teşekkürler. Tamamen bonkerlara gitmek üzereydi! :) –

+1

Mups, kendi cevabınızı doğru olarak işaretleyebilir ve gerçekten bu durumda :) – powerj1984

6

Mups cevap doğrudur. Aynı sorunu olan bir ekleme durumu eklemek istedim (başka birine yararlı olması durumunda). Ben push kurulum vardı ve tam olarak 1 iphone üzerinde çalışıyordu (diğerleri değil). Bu çok şaşırtıcıydı. Sorun, çalışan 1 iphone'un, programın 'hata ayıklama' sürümünün yüklü olduğu, diğerlerinin ise 'ad hoc' bir sürümü yüklü olduğuydu. APNS sunucumuz 'geliştirme' sertifikasını ve gateway.sandbox.push.apple.com

'u kullanmak üzere ayarlandı. Sunucudaki sertifikayı 'production' sertifikasına ve ana bilgisayara gateway.push.apple.com olarak değiştirdim

(sonra tüm cihazlarda tüm provizyon profillerini silinmiş ve programın 'ad hoc' sürümünün yüklü)

ve biz gitmek iyiydi.

İlgili konular