{"__v":55,"_id":"570f438bd6c6f00e00b98731","category":{"project":"54774d9af3736008009e9e0e","version":"56a0bd9e3697d80d002ac5e7","_id":"571006aa10300c0e007f6133","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-04-14T21:07:54.730Z","from_sync":false,"order":16,"slug":"push-notifications","title":"Push Notifications"},"parentDoc":null,"project":"54774d9af3736008009e9e0e","user":"54774c47f3736008009e9e0c","version":{"__v":20,"_id":"56a0bd9e3697d80d002ac5e7","project":"54774d9af3736008009e9e0e","createdAt":"2016-01-21T11:14:38.131Z","releaseDate":"2016-01-21T11:14:38.131Z","categories":["56a0bd9f3697d80d002ac5e8","56a0bd9f3697d80d002ac5e9","56a0bd9f3697d80d002ac5ea","56a0bd9f3697d80d002ac5eb","56b098a43a5b810d00745e3f","56b098da8f7a4f0d0029dd10","56d5a8ecf612b80b00fb69cd","570989853ab43c0e0072b2d6","571006aa10300c0e007f6133","5735a52431a73b1700887ca0","5744b0529e045c0e00b7a7a2","5744b1d0b56d431700d8a4fb","5744b1fb55d65a0e00b436e1","5744b218f9c7411700ce560e","5744b220f9c7411700ce560f","5744b2259e045c0e00b7a7a7","5744b22cf8b79f0e00de6a2d","5744b23155d65a0e00b436e4","5744b242c758290e00fbc235","5744b2569e045c0e00b7a7a8","5756a3f2bb92962900dafe3d","57ee23e81e42900e0014a42f","581c822c98676e0f00d240ef"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Sockets","version_clean":"1.1.0","version":"1.1"},"updates":["5762bdbf5cacae2b003abbf4"],"next":{"pages":[],"description":""},"createdAt":"2016-04-14T07:15:23.006Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":3,"body":"[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"BETA Feature\",\n  \"body\": \"Push Notifications are an experimental feature. If you find any issues, please write to us at [support:::at:::syncano.com](mailto:[email protected])\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Chapter Contents\"\n}\n[/block]\n1. [Overview](#overview)\n2. [Generate a Certificate Signing Request File](#generate-a-certificate-signing-request-file)\n3. [Create an App ID](#create-an-app-id)\n4. [Configure an App ID to use Push Notifications](#configure-an-app-id-to-use-push-notifications)\n5. [Create the Provisioning Profile](#create-the-provisioning-profile)\n6. [Configuring APNs Socket on Syncano](#configuring-apns-socket-on-syncano)\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Overview\"\n}\n[/block]\nPush Notification Sockets allow for sending messages directly to your users devices. Thanks to this functionality, your users can be quickly informed about changes taking place within your application. You can also keep the users in a loop when it comes to new functionalities and services. Push notifications are also a great way of increasing user engagement. \n\nCurrently Syncano offers the functionality of sending notifications to:\n1. Android devices through GCM ([Google Cloud Messaging](https://developers.google.com/cloud-messaging/))\n2. iOS devices through APNS ([Apple Push Notification Service](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html))\n\nTo be able to send push notifications to Apple devices, you'll need to generate an SSL Certificate. Syncano will use this certificate to send Push Notifications to the application identified by the App ID. Below you can read how to configure this functionality.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Generate a Certificate Signing Request File\"\n}\n[/block]\nTo authenticate the creation of the SSL certificate, you need a certificate signing request file.\n\n1. Open Keychain Access on your Mac (`CMD` + `Space` -> Keychain Access -> `Enter`).\n2. On the Keychain Access app menu, navigate to: Keychain Access -> Certificate Assistant -> Request a Certificate From a Certificate Authority....\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/KVCRPeWsTNuU776aaupG_apns_ssl_cert_00.png\",\n        \"apns_ssl_cert_00.png\",\n        \"2558\",\n        \"1502\",\n        \"#894439\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n3. Input your email address and name (leave the CA Email Address blank).\n4. For Request is select Saved to disk, then click Continue to save the .certSigningRequest file to your Mac.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/EkZ6NIHDRLWrv7MEiCAa_apns_ssl_cert_01.png\",\n        \"apns_ssl_cert_01.png\",\n        \"1228\",\n        \"870\",\n        \"#94acc1\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Create an App ID\"\n}\n[/block]\nAn App ID is an identifier that uniquely identifies an application. As a convention it is represented by a reversed domain (e.g. io.syncano.examples.apnsexample).\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"If you already have an App ID that you would like to use, make sure that it is an explicit App ID (it does not contain a wildcard) and skip this section.\"\n}\n[/block]\n1. Go to the [Apple Developer Member Center](https://developer.apple.com/account/) and log in.\n2. Click on the **Certificates Identifiers and Profiles**.\n3. In the drop down menu on the top left corner, select **iOS, tvOS, watchOS**, then go to Identifiers -> App IDs.\n4. Click the **+** button to create a new App ID.\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/kTyrOL77RnuEn1VzMedN_apns_ssl_cert_02.png\",\n        \"apns_ssl_cert_02.png\",\n        \"2558\",\n        \"1306\",\n        \"#eeeeee\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n5. To create the new App ID:\n    - Input a Name for your App ID (e.g. Syncano Example App)\n    - Choose an **App ID Prefix** (the default selection should be fine)\n    - In the **App ID Suffix** section, select **Explicit App ID**, then input your **Bundle ID** (e.g. io.syncano.examples.apnsexample). The value of the Bundle ID should match the value that you are using in your app's `Info.plist`.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/fQuZQYf4TGWLK577WzgE_apns_ssl_cert_03.png\",\n        \"apns_ssl_cert_03.png\",\n        \"2556\",\n        \"1308\",\n        \"#3d9cfc\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n6. In the **App Services** section, make sure that **Push Notifications** is checked.\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/gf4Z75KeSSae2Xw8GlT0_apns_ssl_cert_04.png\",\n        \"apns_ssl_cert_04.png\",\n        \"2558\",\n        \"1274\",\n        \"#27292c\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n7. Click **Continue** and check that your input is correct:\n    - The value of Identifier should match the concatenation of the values of the App ID Prefix and of the Bundle ID\n    - **Push Notifications** should be **Configurable**\n8. Click **Submit** to create the App ID.\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Configure an App ID to use Push Notifications\"\n}\n[/block]\nTo be able to send Apple Push Notifications you will have to configure the App ID settings:\n \n1. Select the App ID that we created in a previous step and click **Edit**\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/iuaBGv63TfGfYBMQ5mtn_apns_ssl_cert_05.png\",\n        \"apns_ssl_cert_05.png\",\n        \"1474\",\n        \"1158\",\n        \"#20557c\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n2. Scroll down to the **Push Notifications** section. You can choose to create development or production certificate. Since we are starting out, click **Create Certificate...** the development version section\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/VM36WkTgmnzzgszYkXdA_apns_ssl_cert_06.png\",\n        \"apns_ssl_cert_06.png\",\n        \"1464\",\n        \"982\",\n        \"#3c9cfc\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n3. You'll see a page titled **About Creating a Certificate Signing Request (CSR)**. Click **Continue** button to proceed to the next step\n4. You should see a **Generate Your Certificate** page. Upload the .certSigningRequest file that you created in the first section of this guide\n5. Click the **Generate** button. Once the SSL Certificate is ready, click **Download** button to save it on your machine\n6. Locate the certificate that you generated (by default it should be in your **Downloads** folder). Double click it to install it in your keychain\n7. Open your **Keychain Access**  app (`CMD` + `Space` -> type \"Keychain\" -> `Enter`). Go to **My Certificates** and locate the certificate that you have just added; it should be called Apple Development / Production IOS Push Services: your.bundle.id\n8. Right-click on the certificate and select **Export** option\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Export\",\n  \"body\": \"Do not set a password when exporting a certificate, as it won't be possible to upload it to Syncano later on!\"\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/qkOUYAKMTVSnsjoxAQEF_apns_ssl_cert_08.png\",\n        \"apns_ssl_cert_08.png\",\n        \"1754\",\n        \"1106\",\n        \"#315b8e\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n9.  Save the certificate as a .p12 file. When you're prompted to type a password to protect the exported certificate, confirm without typing in any password. You will be also asked about your Mac OS X password, to allow for exporting keys to disk - type it, and save `.p12. file on disk\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/3gFRzoS8SjmrbYBLqJWG_apns_ssl_cert_09.png\",\n        \"apns_ssl_cert_09.png\",\n        \"844\",\n        \"452\",\n        \"#32649e\",\n        \"\"\n      ],\n      \"sizing\": \"80\"\n    }\n  ]\n}\n[/block]\nThe certificate can now be used to configure push notifications on the Syncano Platform. \n\nIf your application is production ready, please repeat the above section starting from step 2. You should choose **Create Certificate...** in the **Production SSL Certificate** Section instead.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"When developing your application, please make sure that `kGGLInstanceIDAPNSServerTypeSandboxOption` that is being passed to  `GGLInstanceID.tokenWithAuthorizedEntity:scope:options:handler:` is set to `true` for development and `false` for the production version of the app.\",\n  \"title\": \"Important\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Create the Provisioning Profile\"\n}\n[/block]\nIf you want to run and test an app that is not published on the App Store, you will need to create a Provisioning Profile.\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing.\",\n  \"title\": \"Provisioning Profile\"\n}\n[/block]\nTo create the Provisioning Profile:\n1. Go to [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) and log in\n2. Navigate to [Certificates, Identifiers and Profiles](https://developer.apple.com/account/ios/certificate).\n3. In the drop down menu on the top left corner, select **iOS, tvOS, watchOS**, then scroll down and navigate to **Provisioning Profiles**.\n4. Click the + button to create a new Provisioning Profile.\n5. Select** iOS App Development** as provisioning profile type, then click Continue.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/vRp3Yvn4SwY9CHuHE66Z_apns_provision_00.png\",\n        \"apns_provision_00.png\",\n        \"1468\",\n        \"1256\",\n        \"#3f9ce0\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n6. Select the **App ID** from the dropdown menu, then click **Continue**.\n7. Select the iOS Development / Production certificate of the App ID you have chosen in the previous step, then click **Continue**.\n8. Select the iOS devices that you want to include in the Provisioning Profile, then click **Continue**. Make sure to select all the devices you want to use for your testing.\n9. Name your profile and click **Generate** button.\n10. Click **Download** to save the Provisioning Profile to your machine.\n11. Double-click the Provisioning Profile file to install it.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Configuring APNs Socket on Syncano\"\n}\n[/block]\nIn order to connect your application with Syncano:\n1. Log in to the [Syncano Dashboard](https://dashboard.syncano.io/)\n2. Go to Sockets view and click \"ADD\" button\n3. Next, click \"ADD\" button that is next to the Push Notification Sockets and select APNS Socket\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/fuMXtA7oRfSIILfrpaU6_gcm_syncano_add_00.png\",\n        \"gcm_syncano_add_00.png\",\n        \"2558\",\n        \"1306\",\n        \"#254c80\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n4. On APNS Configuration Screen drop your Drag & Drop your certificate (the one that you created in previous step).\n5. Input your Bundle ID and click **Confirm**\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/m1qKZ0JxQGqYYa98rmRt_apns_cert_up_00.png\",\n        \"apns_cert_up_00.png\",\n        \"1752\",\n        \"1304\",\n        \"#2b537e\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nUff... That was a long config journey but now you should be up and ready for sending your users those marvelous notification messages!\n\n- Check out [Syncano APNS Example](https://github.com/Syncano/syncano-apns-example) repository to learn how to implement some push functionality on the client side\n- Go to Sending Messages chapter to learn how to send Push Notifications","excerpt":"Guide on creating iOS APNs Socket Configurations","slug":"push-notification-sockets-ios","type":"basic","title":"iOS - APNs Socket Configuration"}

iOS - APNs Socket Configuration

Guide on creating iOS APNs Socket Configurations

[block:callout] { "type": "warning", "title": "BETA Feature", "body": "Push Notifications are an experimental feature. If you find any issues, please write to us at [[email protected]](mailto:[email protected])" } [/block] [block:api-header] { "type": "basic", "title": "Chapter Contents" } [/block] 1. [Overview](#overview) 2. [Generate a Certificate Signing Request File](#generate-a-certificate-signing-request-file) 3. [Create an App ID](#create-an-app-id) 4. [Configure an App ID to use Push Notifications](#configure-an-app-id-to-use-push-notifications) 5. [Create the Provisioning Profile](#create-the-provisioning-profile) 6. [Configuring APNs Socket on Syncano](#configuring-apns-socket-on-syncano) [block:api-header] { "type": "basic", "title": "Overview" } [/block] Push Notification Sockets allow for sending messages directly to your users devices. Thanks to this functionality, your users can be quickly informed about changes taking place within your application. You can also keep the users in a loop when it comes to new functionalities and services. Push notifications are also a great way of increasing user engagement. Currently Syncano offers the functionality of sending notifications to: 1. Android devices through GCM ([Google Cloud Messaging](https://developers.google.com/cloud-messaging/)) 2. iOS devices through APNS ([Apple Push Notification Service](https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html)) To be able to send push notifications to Apple devices, you'll need to generate an SSL Certificate. Syncano will use this certificate to send Push Notifications to the application identified by the App ID. Below you can read how to configure this functionality. [block:api-header] { "type": "basic", "title": "Generate a Certificate Signing Request File" } [/block] To authenticate the creation of the SSL certificate, you need a certificate signing request file. 1. Open Keychain Access on your Mac (`CMD` + `Space` -> Keychain Access -> `Enter`). 2. On the Keychain Access app menu, navigate to: Keychain Access -> Certificate Assistant -> Request a Certificate From a Certificate Authority.... [block:image] { "images": [ { "image": [ "https://files.readme.io/KVCRPeWsTNuU776aaupG_apns_ssl_cert_00.png", "apns_ssl_cert_00.png", "2558", "1502", "#894439", "" ] } ] } [/block] 3. Input your email address and name (leave the CA Email Address blank). 4. For Request is select Saved to disk, then click Continue to save the .certSigningRequest file to your Mac. [block:image] { "images": [ { "image": [ "https://files.readme.io/EkZ6NIHDRLWrv7MEiCAa_apns_ssl_cert_01.png", "apns_ssl_cert_01.png", "1228", "870", "#94acc1", "" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "Create an App ID" } [/block] An App ID is an identifier that uniquely identifies an application. As a convention it is represented by a reversed domain (e.g. io.syncano.examples.apnsexample). [block:callout] { "type": "info", "body": "If you already have an App ID that you would like to use, make sure that it is an explicit App ID (it does not contain a wildcard) and skip this section." } [/block] 1. Go to the [Apple Developer Member Center](https://developer.apple.com/account/) and log in. 2. Click on the **Certificates Identifiers and Profiles**. 3. In the drop down menu on the top left corner, select **iOS, tvOS, watchOS**, then go to Identifiers -> App IDs. 4. Click the **+** button to create a new App ID. [block:image] { "images": [ { "image": [ "https://files.readme.io/kTyrOL77RnuEn1VzMedN_apns_ssl_cert_02.png", "apns_ssl_cert_02.png", "2558", "1306", "#eeeeee", "" ] } ] } [/block] 5. To create the new App ID: - Input a Name for your App ID (e.g. Syncano Example App) - Choose an **App ID Prefix** (the default selection should be fine) - In the **App ID Suffix** section, select **Explicit App ID**, then input your **Bundle ID** (e.g. io.syncano.examples.apnsexample). The value of the Bundle ID should match the value that you are using in your app's `Info.plist`. [block:image] { "images": [ { "image": [ "https://files.readme.io/fQuZQYf4TGWLK577WzgE_apns_ssl_cert_03.png", "apns_ssl_cert_03.png", "2556", "1308", "#3d9cfc", "" ] } ] } [/block] 6. In the **App Services** section, make sure that **Push Notifications** is checked. [block:image] { "images": [ { "image": [ "https://files.readme.io/gf4Z75KeSSae2Xw8GlT0_apns_ssl_cert_04.png", "apns_ssl_cert_04.png", "2558", "1274", "#27292c", "" ] } ] } [/block] 7. Click **Continue** and check that your input is correct: - The value of Identifier should match the concatenation of the values of the App ID Prefix and of the Bundle ID - **Push Notifications** should be **Configurable** 8. Click **Submit** to create the App ID. [block:api-header] { "type": "basic", "title": "Configure an App ID to use Push Notifications" } [/block] To be able to send Apple Push Notifications you will have to configure the App ID settings: 1. Select the App ID that we created in a previous step and click **Edit** [block:image] { "images": [ { "image": [ "https://files.readme.io/iuaBGv63TfGfYBMQ5mtn_apns_ssl_cert_05.png", "apns_ssl_cert_05.png", "1474", "1158", "#20557c", "" ] } ] } [/block] 2. Scroll down to the **Push Notifications** section. You can choose to create development or production certificate. Since we are starting out, click **Create Certificate...** the development version section [block:image] { "images": [ { "image": [ "https://files.readme.io/VM36WkTgmnzzgszYkXdA_apns_ssl_cert_06.png", "apns_ssl_cert_06.png", "1464", "982", "#3c9cfc", "" ] } ] } [/block] 3. You'll see a page titled **About Creating a Certificate Signing Request (CSR)**. Click **Continue** button to proceed to the next step 4. You should see a **Generate Your Certificate** page. Upload the .certSigningRequest file that you created in the first section of this guide 5. Click the **Generate** button. Once the SSL Certificate is ready, click **Download** button to save it on your machine 6. Locate the certificate that you generated (by default it should be in your **Downloads** folder). Double click it to install it in your keychain 7. Open your **Keychain Access** app (`CMD` + `Space` -> type "Keychain" -> `Enter`). Go to **My Certificates** and locate the certificate that you have just added; it should be called Apple Development / Production IOS Push Services: your.bundle.id 8. Right-click on the certificate and select **Export** option [block:callout] { "type": "danger", "title": "Export", "body": "Do not set a password when exporting a certificate, as it won't be possible to upload it to Syncano later on!" } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/qkOUYAKMTVSnsjoxAQEF_apns_ssl_cert_08.png", "apns_ssl_cert_08.png", "1754", "1106", "#315b8e", "" ] } ] } [/block] 9. Save the certificate as a .p12 file. When you're prompted to type a password to protect the exported certificate, confirm without typing in any password. You will be also asked about your Mac OS X password, to allow for exporting keys to disk - type it, and save `.p12. file on disk [block:image] { "images": [ { "image": [ "https://files.readme.io/3gFRzoS8SjmrbYBLqJWG_apns_ssl_cert_09.png", "apns_ssl_cert_09.png", "844", "452", "#32649e", "" ], "sizing": "80" } ] } [/block] The certificate can now be used to configure push notifications on the Syncano Platform. If your application is production ready, please repeat the above section starting from step 2. You should choose **Create Certificate...** in the **Production SSL Certificate** Section instead. [block:callout] { "type": "warning", "body": "When developing your application, please make sure that `kGGLInstanceIDAPNSServerTypeSandboxOption` that is being passed to `GGLInstanceID.tokenWithAuthorizedEntity:scope:options:handler:` is set to `true` for development and `false` for the production version of the app.", "title": "Important" } [/block] [block:api-header] { "type": "basic", "title": "Create the Provisioning Profile" } [/block] If you want to run and test an app that is not published on the App Store, you will need to create a Provisioning Profile. [block:callout] { "type": "info", "body": "A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing.", "title": "Provisioning Profile" } [/block] To create the Provisioning Profile: 1. Go to [Apple Developer Member Center](https://developer.apple.com/membercenter/index.action) and log in 2. Navigate to [Certificates, Identifiers and Profiles](https://developer.apple.com/account/ios/certificate). 3. In the drop down menu on the top left corner, select **iOS, tvOS, watchOS**, then scroll down and navigate to **Provisioning Profiles**. 4. Click the + button to create a new Provisioning Profile. 5. Select** iOS App Development** as provisioning profile type, then click Continue. [block:image] { "images": [ { "image": [ "https://files.readme.io/vRp3Yvn4SwY9CHuHE66Z_apns_provision_00.png", "apns_provision_00.png", "1468", "1256", "#3f9ce0", "" ] } ] } [/block] 6. Select the **App ID** from the dropdown menu, then click **Continue**. 7. Select the iOS Development / Production certificate of the App ID you have chosen in the previous step, then click **Continue**. 8. Select the iOS devices that you want to include in the Provisioning Profile, then click **Continue**. Make sure to select all the devices you want to use for your testing. 9. Name your profile and click **Generate** button. 10. Click **Download** to save the Provisioning Profile to your machine. 11. Double-click the Provisioning Profile file to install it. [block:api-header] { "type": "basic", "title": "Configuring APNs Socket on Syncano" } [/block] In order to connect your application with Syncano: 1. Log in to the [Syncano Dashboard](https://dashboard.syncano.io/) 2. Go to Sockets view and click "ADD" button 3. Next, click "ADD" button that is next to the Push Notification Sockets and select APNS Socket [block:image] { "images": [ { "image": [ "https://files.readme.io/fuMXtA7oRfSIILfrpaU6_gcm_syncano_add_00.png", "gcm_syncano_add_00.png", "2558", "1306", "#254c80", "" ] } ] } [/block] 4. On APNS Configuration Screen drop your Drag & Drop your certificate (the one that you created in previous step). 5. Input your Bundle ID and click **Confirm** [block:image] { "images": [ { "image": [ "https://files.readme.io/m1qKZ0JxQGqYYa98rmRt_apns_cert_up_00.png", "apns_cert_up_00.png", "1752", "1304", "#2b537e", "" ] } ] } [/block] Uff... That was a long config journey but now you should be up and ready for sending your users those marvelous notification messages! - Check out [Syncano APNS Example](https://github.com/Syncano/syncano-apns-example) repository to learn how to implement some push functionality on the client side - Go to Sending Messages chapter to learn how to send Push Notifications