0

我一直在開發一個使用推送通知的應用程序。我一直在搞亂ALOT試圖解決愚蠢的配置的東西,我真的不知道什麼是了。搞砸了Apple推送通知服務

我設法修復了整個開發推送通知。而現在,我們即將釋放。但是,切換到生產通知並沒有像預期的那樣順利。而且我還是不太瞭解整個配置。

我以爲我只是不得不將新的.pem文件轉換成新的.cer文件,並從它試圖連接的URL中刪除「沙箱」。這只是導致「無法連接:0」在我的.php發送推。

.PHP

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'local_cert', 'dp.pem') 
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase); 

$fp = stream_socket_client(
    'ssl://gateway.push.apple.com:2195', $err, 
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); 

if(!$fp) 
    exit("Failed to connect: $err $errstr" . PHP_EOL); 

與中.P12和.CER和.cert和.PEM和名爲.mobileprovision的.ipa亂搞後,我真的不知道該怎麼辦了。爲什麼我們做必須轉換爲.pem併合並它們?蘋果是否真的希望我們這樣做?還是我一直在遵循一個漂亮的redicolus教程?

需要什麼.cer文件?應用程序使用哪個配置文件? AppID vs provision與設備vs證書。到底是什麼..除了切換到新的.pem文件並刪除「沙盒」之外,我還需要做些什麼。我已經從門戶網站激活並下載了「生產推送SSL證書」,並從中生成了我的.pem文件。我已經嘗試閱讀這個,但它是一個困難和愚蠢的設置!我確信我做錯了什麼。但無法弄清楚什麼,地點和原因!

回答

0

Push notification services - 偉大的教程,你會發現PHP腳本+答案你所有的問題。

+0

不,這正是我用過的教程。就是那個php腳本我從中刪除了「沙箱」,並且說我只需要再次做同樣的事情。我做到了。我相信。 – Sti

+0

好吧,那麼,您是否將您的Product.entitlements設置爲分配? aps-environment:distribution,get-task-allow:NO?我工作的設置和你一樣:$ ctx = stream_context_create(); stream_context_set_option($ ctx,'ssl','local_cert','ckProduction.pem'); stream_context_set_option($ ctx,'ssl','passphrase',$ passphrase); //打開一個與APNS服務器 $計劃生育= stream_socket_client( \t連接 'SSL://gateway.push.apple.com:2195',$犯錯, \t $ errstr,60,STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,$ CTX); – mientus

+0

這與這有什麼關係?我認爲這個問題發生,因爲我沒有得到一個連接到服務器..這不會有任何關係的應用程序?無論如何..我認爲一切都是爲了發行。明天會重新檢查。 – Sti