以下是使用Mac實做Ios app的push notification功能:
step1.註冊Ios開發者帳號,一年要$99美元
由於開發Ios app一定要有開發者帳號,否則無法在實機上測試。註冊完開發者帳號後可以進入第二個步驟。
點選Mac>應用程式->工具程式(資料夾)->鑰匙圈存取
進去之後上方bar的鑰匙圈存取->憑證輔助程式->從憑證授權要求憑證
之後輸入電子郵件,一般名稱與下方選儲存至硬碟。
之後儲存至桌面push.certSigningRequest
#注意:上面的檔名為你在titanium的project name,例如你的Titanium的id可能是com.companyname.push
之後下方點鑰匙,會發現剛剛已經儲存的push.certSigningRequest
點選右鍵並輸出成.p12檔至桌面
此時你應該有兩個檔案push.certSigningRequest與push.p12
ste3.設定AppleId
至https://developer.apple.com/account/overview.action點選Certificates
進去之後點右方App Ids,會進入下方畫面
接著name就是剛剛的push(記得改成你的),bundle id就是你在titanium的id(kuo.companyname.push),最後下方記得點選push notification,之後點continue後submit。
step4.設定push notification
開完App Id後點選它,會發現push notifications還在configurable的狀態,點下方edit進去設定。
進去之後會看到下方的畫面。
Development是你在開發時用的,在你要上架至app store之前需要重新設定一次,步驟跟development一樣。
這裡點development的create certificate,接著會至下方頁面。
點選continue就可以了,或是你也可以看一下上方的敘述,那是在教你如何產生CSR,不過我們在稍早的步驟都已經做完了,這裡就略過不看了。
接著把剛剛的push.certSigningRequest上傳上去就可以了。上傳完會進去下方畫面。
接下來把上方的檔案下載至桌面aps_development.cer,之後點開匯入你的鑰匙。這時可以回去剛剛的鑰匙圈存取,
會發現多了一個憑證。
此時你桌面應該有三個檔案push.certSigningRequest,push.p12,aps_development.cer。
step4.製作.pem檔案
打開終端機然後cd到桌面
cd ~/Desktop/
將.cer檔轉成.pem檔案
openssl x509 -in aps_development.cer -inform der -out pushCert.pem
將.p12轉成.pem檔,輸入密碼後必須再輸入passphrase,直接以push當passphrase就可以了,這在之後發push的後端server會用到,記得pass phrase要改成你自己的。
openssl pkcs12 -nocerts -out pushKey.pem -in push.p12 Enter Import Password: MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
接著將剛剛產生的pushCert.pem與pushKey.pem轉成ck.pem
cat pushCert.pem pushKey.pem > ck.pem
step5.測試appale的Apns
$ telnet gateway.sandbox.push.apple.com 2195 Trying 17.172.232.226... Connected to gateway.sandbox.push-apple.com.akadns.net. Escape character is '^]'.
如果看到上方訊息就表示可以連到Apple的APNS server。
接著使用private key測試
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert pushCert.pem -key pushKey.pem
如果成功了,你應該要可以看到一大堆輸出訊息。並且可以輸入一些文字,然後按enter之後就會中斷連線了。
step6.設定你的provisioning profile
之後一路設定下去就可以了。再選device的時候它會要求你輸入你iphone的UDID,查一下並輸入就可以了。
接下來把它下載下來,並且點開。
step7.設定titainium
進入titanium,你的專案應該要寫好了,然後點專案右鍵的run configuration,再點ios device。
select device:你的iphone手機
select development certificate:剛剛建立的certificates下載下來點右鍵匯入鑰匙,所以這裡應該要可以看到。
select provisioning profile:剛剛已經下載並點開了,所以這應該要可以看到你剛剛建立的。
完成以上步驟應該已經可以看到app在自己手機上run起來了。
step8.撰寫後端功能。
後端程式下載:https://github.com/MR-SC/documents/tree/master/scripts/php/ios-push
ck.pem要用你自己的,另外裡面程式碼也要修改,passphrase要改成你的,另外deviceToken是收集使用者手機的device token。以上完成應該可以成功發送push至手機上了。
以上僅供參考。
參考文章:
1.http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
2.http://www.ralfebert.de/archive/ios/tutorial_iosdev/run_app/
3.https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG41
4.http://docs.appcelerator.com/titanium/latest/#!/guide/Deploying_to_iOS_devices