返回列表 發帖

[Objective-C] 關於申請apple push notification (通知)的錯誤(含部份教學)

本帖最後由 Webberlai 於 2011-3-16 17:01 編輯

有些時候,會發現App ID 跟 Provision profile的id都一樣了

也有把certification(憑證)下載安裝到keychain裡面

可是在console底下,會發現還是出現這個問題
  1. Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=3000 "未找到應用程序的“aps-environment”的權利字符串"
複製代碼
這是因為當初申請App IDs的時候做的太快了

一申請好App ID的同時,就跳到"Provisioning",直接申請並下載對應的Provision profile

這樣子就會出現這個錯誤

所以當遇到這個錯誤的時候,要先用Keychain >Certificate Assistant >Request a cretificate ...(後面我忘了是啥單字)

會出現這個視窗


記得打勾Save to disk !!!

信箱的位置就輸入平常用來登入Apple Developer的mail就可以了

然後Common Name 我是都會打入程式的名稱...隨便啦其實這個地方...

接著會有一個檔案叫做
  1. "CertificateSigningRequest.certSigningRequest"
複製代碼


存到你的電腦裡(看你剛剛指定的路徑是哪邊)

接著再回到Apple Developer  的App IDs ,找一下準備送PNS的App ID,在Action底下應該有選項是"Configure"

點進去(如果沒有看到configure)那就是你的權限不足,請找你的主管或者申請人的帳號登入吧

總之進去之後,就會看到這個畫面


請先打勾"Enable For Apple Push Notification service"

後面兩個Configure的按鈕就可以點選了,點下去之後

就可以選擇剛剛我們使用Keychain產生的Request

重複兩次,把Cert都下載到電腦裡面,點兩下安裝到Keychain裡面。

再來到Provisioning裡面去,把原本的Provision Profile移除掉,重新申請一個Provision Profile

回到Xcode > Window>Organizer ,把Provisioning Profile裡面舊的那個描敘檔案砍掉

下載並安裝剛剛新增的Provision Profile

關閉Xcode(有時候不用,不過關掉從開比較不會有問題)

安裝程式(要取得device token 跟一些使用的delegate請google應該有),打開console ,應該可以看到取得手機的Token了!

後端的部份:

因為送Push 是我們的server需要告訴Apple 的server,Apple那邊才把訊息送回給我們

這時候我們需要打開keycahin ,可以看到剛剛下載的兩個Cert ,Cert旁邊應該會有一個三角形的箭頭

打開"Apple Development Push Services",會看到下面有個private key

先按右鍵點上面的cert,選擇Export Apple Development Push Services :xxxxx....取名字盡量取好認的例如Cert.p12

然後重複動作,取名privateKey.P12

這兩個東西都是需要設定密碼的,就幫他們取個密碼吧

接著把這兩個.p12檔案,丟給後端Server,然後把想要接收push的裝置token一併送回去

就可以透過我們自己的server送PNS到手機端了!
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊
請問iOS 5也是類似的方式嗎?
謝謝
謝謝
返回列表