{"_id":"5540d9835cf9682100d61acc","category":{"_id":"5540d91bbb9e762d00f594ad","project":"5540ce1b31827a0d007ab1cc","version":"5540ce1c31827a0d007ab1cf","__v":14,"pages":["5540d9835cf9682100d61acc","5540d9f25cf9682100d61acf","55a3c52253611017004386bd","55a7744495bf6d25009a0505","55a8f59ac8bd450d000dd11f","55a8f945c8bd450d000dd128","55a8fb52c8bd450d000dd131","55a9046fc8bd450d000dd152","55a9094827a17d210052522a","55a90b6bcf45e1390093f2b8","55a90dd5c8bd450d000dd167","55a911afc8bd450d000dd179","55a9120acf45e1390093f2d0","55ba2eadb3612925009d670a"],"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-04-29T13:14:03.694Z","from_sync":false,"order":3,"slug":"ios","title":"iOS"},"__v":19,"parentDoc":null,"version":{"_id":"5540ce1c31827a0d007ab1cf","project":"5540ce1b31827a0d007ab1cc","__v":31,"createdAt":"2015-04-29T12:27:08.390Z","releaseDate":"2015-04-29T12:27:08.390Z","categories":["5540ce1c31827a0d007ab1d0","5540d91bbb9e762d00f594ad","5540e5f131827a0d007ab212","5540e5febb9e762d00f594d3","5540e61331827a0d007ab213","5540e6195cf9682100d61afa","5540e62631827a0d007ab214","5540e63031827a0d007ab215","5540e63531827a0d007ab216","5540e63e5cf9682100d61afc","5540e6445cf9682100d61afd","5540e64a5cf9682100d61afe","55a4ff5b2e70c0250038050f","55acb28318eefd0d0071d504","55ae1abe8576b92300291c80","55ae453ef302af23000ac109","55af586d555b900d0036d296","55af91dac8a85321007a53c3","55b9fee204775a2f00628071","55b9ff0e04775a2f00628072","55b9ff4604775a2f00628073","55b9ff5fd72d1e1900276a38","55b9ff7f04775a2f00628074","55b9ff90eb08801900f833e5","55b9ffa5d72d1e1900276a39","55b9ffca04775a2f00628075","55b9fffdd72d1e1900276a3a","56bc2f033ee9e70d008b46af","56c2f6efbbf9ec2d00e0fe4f","57595bbb18760817001e8bbe","57d8d9793916800e003dde53"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"project":"5540ce1b31827a0d007ab1cc","user":"5540cdbf5cf9682100d61a97","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-04-29T13:15:47.818Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[]},"auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"At first glance, configuring your iOS application to properly interact with APNs may seem a bit complicated, but once you learn the ropes it gets fast and easy. Take a minute to read the instructions below.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"iOS Autoconfiguration\",\n  \"body\": \"Our Developer account holders can use the **iOS Autoconfiguration** tool that greatly simplifies and speeds up the whole process - jump to step [5.2](http://docs.pushwoosh.com/docs/apns-configuration#52-auto-configuration-available-for-developer-acco)!\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"For testing purposes we strongly recommend creating two versions of the app in Pushwoosh — one for **production**, and the other for **development** with corresponding private keys. Otherwise, there is a big chance to lose live subscribers by accidentally invalidating device tokens with a push sent to a wrong gateway.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"1. Generating a Certificate Request\"\n}\n[/block]\nFirst, generate a certificate request file for requesting a development SSL certificate later on.\n\n**1.1.** Launch Keychain Access on your Mac\n**1.2.** Select **Keychain Access** >> **Certificate Assistant** >> **Request a Certificate From a Certificate Authority** (Figure 1):\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/pNp371YRbuKn3CL40gXn_ios1.png\",\n        \"ios1.png\",\n        \"760\",\n        \"286\",\n        \"#bb9560\",\n        \"\"\n      ],\n      \"caption\": \"Figure 1. Generating a certificate request\"\n    }\n  ]\n}\n[/block]\n**1.3.** Enter the required information and choose **Saved to disk**. Click **Continue** (see Figure 2): \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1ukjVbeTRIyJbGeRaNnZ_ios2.png\",\n        \"ios2.png\",\n        \"730\",\n        \"550\",\n        \"#8b4414\",\n        \"\"\n      ],\n      \"caption\": \"Figure 2. Saving the certificate request to disk\"\n    }\n  ]\n}\n[/block]\n**1.4.** Click **Save** to save the certificate request using the suggested name. (Figure 3) >> **Done** on the next screen.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/q60mG7SoKJvqQ5o2jorQ_ios3.png\",\n        \"ios3.png\",\n        \"730\",\n        \"550\",\n        \"#8a421a\",\n        \"\"\n      ],\n      \"caption\": \"Figure 3. Naming the certificate request\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"2. Creating an App ID\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"If you have an **App ID** ready, skip to step **3. Configuring an App ID for Push Notification**\"\n}\n[/block]\nEach iOS application using the APNs must have a unique application ID. In this step, you will learn how to create App IDs for push notifications.\n\n**2.1.** Sign in to iOS Developer Center at: [https://developer.apple.com/membercenter/](https://developer.apple.com/membercenter/). Click **Certificates, Identifiers and Profiles** on the right (Figure 4).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/LjVLq4mcQmWl5j12Ifvl_ios4.png\",\n        \"ios4.png\",\n        \"1105\",\n        \"814\",\n        \"#875b4e\",\n        \"\"\n      ],\n      \"caption\": \"Figure 4. Launching the iOS Provisioning Portal\"\n    }\n  ]\n}\n[/block]\n**2.2.** You will see the welcome page (Figure 5). In iOS Apps choose Identifiers.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/leA82NiQR926rbePk3BV_ios5.png\",\n        \"ios5.png\",\n        \"1105\",\n        \"979\",\n        \"#3c5066\",\n        \"\"\n      ],\n      \"caption\": \"Figure 5. Welcome screen of the iOS Provisioning Portal\"\n    }\n  ]\n}\n[/block]\n**2.3.** Click App IDs on the left and then click New App ID (Figure 6).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/Bdx9RW1RX2AQp2rsMWQ9_ios6.png\",\n        \"ios6.png\",\n        \"1105\",\n        \"979\",\n        \"#8e4322\",\n        \"\"\n      ],\n      \"caption\": \"Figure 6. Adding the new App ID\"\n    }\n  ]\n}\n[/block]\n**2.4.** Register a new App ID. Enter your App ID Description (Ex: “PushAppID”), and select an App ID Prefix. In **App ID Suffix**  choose Explicit App ID, and provide a correct Bundle Identifier in the form *com.company.application* (i.e.: com.arellomobile.MyPushApp). Check **Push Notifications** from the list of App Services and click **Continue** (Figure 7), then **Submit**, and then **Done**.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/NS0pndGAToqeEH9SO7VC_ios7.png\",\n        \"ios7.png\",\n        \"1105\",\n        \"1088\",\n        \"#8c3e25\",\n        \"\"\n      ],\n      \"caption\": \"Figure 7. Creating a new App ID\"\n    }\n  ]\n}\n[/block]\n**2.5.** You should now see the new App ID (together with those created earlier). Click **Edit** to configure Push Notifications for your App ID (Figure 8).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/IfOzSHQnebInwpo95oPA_ios8.png\",\n        \"ios8.png\",\n        \"1105\",\n        \"1088\",\n        \"#325275\",\n        \"\"\n      ],\n      \"caption\": \"Figure 8. Viewing the newly created App ID\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"3. Configuring an App ID for Push Notifications\"\n}\n[/block]\nOnce an App ID is created, you need to configure it for push notifications.\n\n**3.1.** To configure an App ID, click **Create Certificate** on the right (Figure 9).\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 9. Creating the Development SSL Certificate\",\n      \"image\": [\n        \"https://files.readme.io/xz2guVZ8QbqEDimUsjGL_ios9.png\",\n        \"ios9.png\",\n        \"1105\",\n        \"1088\",\n        \"#9f492f\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n**3.2.** You will now see the Apple Push Notification service SSL Certificate Assistant screen. Click **Continue** (Figure 10).\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 10. The Apple Push Notification service SSL Certificate Assistant screen\",\n      \"image\": [\n        \"https://files.readme.io/CunUIcuQJGYArqgZI86T_ios10.png\",\n        \"ios10.png\",\n        \"1105\",\n        \"966\",\n        \"#8e4928\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n**3.3.** Click **Choose File** to locate the Certificate Request file that you have saved earlier. Click **Generate** (Figure 11).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/EDQhUDjT7e80EQRnnj9c_ios11.png\",\n        \"ios11.png\",\n        \"1105\",\n        \"966\",\n        \"#90523c\",\n        \"\"\n      ],\n      \"caption\": \"Figure 11. Generating the SSL certificate\"\n    }\n  ]\n}\n[/block]\n**3.4.** Your SSL Certificate will now be generated. Click **Continue**, and then click **Download** to download SSL Certificate to your drive. Click **Done** (Figure 12). \n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 12. Downloading Certificate\",\n      \"image\": [\n        \"https://files.readme.io/FBD6FymRa64lbxOO6gDJ_ios12.png\",\n        \"ios12.png\",\n        \"1105\",\n        \"1031\",\n        \"#8c553f\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n**3.5.** Download and double-click the certificate to install it in the Keychain Access application (Figure 13). This is the SSL certificate Pushwoosh uses to contact the APNs and send push notifications to your applications. Now you need to export the certificate.\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 13. Installing the generated certificate into the Keychain Access application\",\n      \"image\": [\n        \"https://files.readme.io/otkSJZKBS46viO9S5wQN_ios13.png\",\n        \"ios13.png\",\n        \"991\",\n        \"669\",\n        \"#364778\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"4. Exporting Private Key\"\n}\n[/block]\n**4.1.** Open **Keychain Access** and select the ‘Keys’ category.\n\nClick the private key associated with your iOS Push Certificate and click ‘Export Items’ in the menu (Figure 14).\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Please note that this is not a private key for your iOS Development certificate.\"\n}\n[/block]\nYou will be prompted to create a password. You will need to enter the same password on Pushwoosh configuration page.\n[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"This is the file you need to upload to Pushwoosh. You will need to enter the same password to create the Private Key (see right above).\"\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/Jmwik2fWRh6hD2xHmSwZ_ios14-1.png\",\n        \"ios14-1.png\",\n        \"879\",\n        \"557\",\n        \"#854f27\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/3RwqBfcZRyavZuM5EFsg_ios14-2.png\",\n        \"ios14-2.png\",\n        \"991\",\n        \"669\",\n        \"#8c4c1c\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/EemFHEUiQCyE8f880iUd_ios14-3.png\",\n        \"ios14-3.png\",\n        \"558\",\n        \"392\",\n        \"#894b1c\",\n        \"\"\n      ],\n      \"caption\": \"Figure 14. Exporting Key file\"\n    }\n  ]\n}\n[/block]\n**4.2.** To install the Certificate and Private Key for the application log in to your Control Panel, go to **My applications**, select your application, and open **Configure** page in the left menu (Figure 15).\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 15. App Configuration Page\",\n      \"image\": [\n        \"https://files.readme.io/mKbDcxeMSfOAqqen8OIk_ios15.png\",\n        \"ios15.png\",\n        \"1187\",\n        \"674\",\n        \"#066289\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"5. Configure push notifications through Control Panel\"\n}\n[/block]\nSelect iOS platform by clicking **Configure** button. Push notifications can be configured through Control Panel manually or automatically.\n\n**5.1.** For Manual Configuration upload the private key to Pushwoosh, enter your Private key password, and select your framework, then click **Save** (Figure 16).\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Figure 16. Uploading Certificate and Private Key files (Manual Configuration)\",\n      \"image\": [\n        \"https://files.readme.io/2YZbC17KTxGhcG64UDo5_ios16.png\",\n        \"ios16.png\",\n        \"572\",\n        \"553\",\n        \"#388326\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"5.2. Auto Configuration (available for Developer accounts)\"\n}\n[/block]\nFor Auto Configuration select “Auto” tab and follow these next steps:\n  *   1) Enter your Apple ID and Password\n  *   2) Select your Developer team\n  *   3) Select your App ID\n  *   4) Select the gateway you want to configure: Sandbox for developer app builds, Production (aka Distribution) gateway for AdHoc and AppStore builds \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/Ec4cHJ7ITIez8JiPtIkd_ios17.png\",\n        \"ios17.png\",\n        \"578\",\n        \"800\",\n        \"#0fa2d9\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"During Auto Configuration a new APNs certificate for the specified Apple App ID is generated. Therefore any existing APNs certificates for this Apple App ID will be revoked.\"\n}\n[/block]","excerpt":"Instructions on how to configure your iOS application to connect to Apple Push Notification Service","slug":"apns-configuration","type":"basic","title":"iOS Configuration"}

iOS Configuration

Instructions on how to configure your iOS application to connect to Apple Push Notification Service

At first glance, configuring your iOS application to properly interact with APNs may seem a bit complicated, but once you learn the ropes it gets fast and easy. Take a minute to read the instructions below. [block:callout] { "type": "info", "title": "iOS Autoconfiguration", "body": "Our Developer account holders can use the **iOS Autoconfiguration** tool that greatly simplifies and speeds up the whole process - jump to step [5.2](http://docs.pushwoosh.com/docs/apns-configuration#52-auto-configuration-available-for-developer-acco)!" } [/block] [block:callout] { "type": "warning", "body": "For testing purposes we strongly recommend creating two versions of the app in Pushwoosh — one for **production**, and the other for **development** with corresponding private keys. Otherwise, there is a big chance to lose live subscribers by accidentally invalidating device tokens with a push sent to a wrong gateway." } [/block] [block:api-header] { "type": "basic", "title": "1. Generating a Certificate Request" } [/block] First, generate a certificate request file for requesting a development SSL certificate later on. **1.1.** Launch Keychain Access on your Mac **1.2.** Select **Keychain Access** >> **Certificate Assistant** >> **Request a Certificate From a Certificate Authority** (Figure 1): [block:image] { "images": [ { "image": [ "https://files.readme.io/pNp371YRbuKn3CL40gXn_ios1.png", "ios1.png", "760", "286", "#bb9560", "" ], "caption": "Figure 1. Generating a certificate request" } ] } [/block] **1.3.** Enter the required information and choose **Saved to disk**. Click **Continue** (see Figure 2): [block:image] { "images": [ { "image": [ "https://files.readme.io/1ukjVbeTRIyJbGeRaNnZ_ios2.png", "ios2.png", "730", "550", "#8b4414", "" ], "caption": "Figure 2. Saving the certificate request to disk" } ] } [/block] **1.4.** Click **Save** to save the certificate request using the suggested name. (Figure 3) >> **Done** on the next screen. [block:image] { "images": [ { "image": [ "https://files.readme.io/q60mG7SoKJvqQ5o2jorQ_ios3.png", "ios3.png", "730", "550", "#8a421a", "" ], "caption": "Figure 3. Naming the certificate request" } ] } [/block] [block:api-header] { "type": "basic", "title": "2. Creating an App ID" } [/block] [block:callout] { "type": "info", "body": "If you have an **App ID** ready, skip to step **3. Configuring an App ID for Push Notification**" } [/block] Each iOS application using the APNs must have a unique application ID. In this step, you will learn how to create App IDs for push notifications. **2.1.** Sign in to iOS Developer Center at: [https://developer.apple.com/membercenter/](https://developer.apple.com/membercenter/). Click **Certificates, Identifiers and Profiles** on the right (Figure 4). [block:image] { "images": [ { "image": [ "https://files.readme.io/LjVLq4mcQmWl5j12Ifvl_ios4.png", "ios4.png", "1105", "814", "#875b4e", "" ], "caption": "Figure 4. Launching the iOS Provisioning Portal" } ] } [/block] **2.2.** You will see the welcome page (Figure 5). In iOS Apps choose Identifiers. [block:image] { "images": [ { "image": [ "https://files.readme.io/leA82NiQR926rbePk3BV_ios5.png", "ios5.png", "1105", "979", "#3c5066", "" ], "caption": "Figure 5. Welcome screen of the iOS Provisioning Portal" } ] } [/block] **2.3.** Click App IDs on the left and then click New App ID (Figure 6). [block:image] { "images": [ { "image": [ "https://files.readme.io/Bdx9RW1RX2AQp2rsMWQ9_ios6.png", "ios6.png", "1105", "979", "#8e4322", "" ], "caption": "Figure 6. Adding the new App ID" } ] } [/block] **2.4.** Register a new App ID. Enter your App ID Description (Ex: “PushAppID”), and select an App ID Prefix. In **App ID Suffix** choose Explicit App ID, and provide a correct Bundle Identifier in the form *com.company.application* (i.e.: com.arellomobile.MyPushApp). Check **Push Notifications** from the list of App Services and click **Continue** (Figure 7), then **Submit**, and then **Done**. [block:image] { "images": [ { "image": [ "https://files.readme.io/NS0pndGAToqeEH9SO7VC_ios7.png", "ios7.png", "1105", "1088", "#8c3e25", "" ], "caption": "Figure 7. Creating a new App ID" } ] } [/block] **2.5.** You should now see the new App ID (together with those created earlier). Click **Edit** to configure Push Notifications for your App ID (Figure 8). [block:image] { "images": [ { "image": [ "https://files.readme.io/IfOzSHQnebInwpo95oPA_ios8.png", "ios8.png", "1105", "1088", "#325275", "" ], "caption": "Figure 8. Viewing the newly created App ID" } ] } [/block] [block:api-header] { "type": "basic", "title": "3. Configuring an App ID for Push Notifications" } [/block] Once an App ID is created, you need to configure it for push notifications. **3.1.** To configure an App ID, click **Create Certificate** on the right (Figure 9). [block:image] { "images": [ { "caption": "Figure 9. Creating the Development SSL Certificate", "image": [ "https://files.readme.io/xz2guVZ8QbqEDimUsjGL_ios9.png", "ios9.png", "1105", "1088", "#9f492f", "" ] } ] } [/block] **3.2.** You will now see the Apple Push Notification service SSL Certificate Assistant screen. Click **Continue** (Figure 10). [block:image] { "images": [ { "caption": "Figure 10. The Apple Push Notification service SSL Certificate Assistant screen", "image": [ "https://files.readme.io/CunUIcuQJGYArqgZI86T_ios10.png", "ios10.png", "1105", "966", "#8e4928", "" ] } ] } [/block] **3.3.** Click **Choose File** to locate the Certificate Request file that you have saved earlier. Click **Generate** (Figure 11). [block:image] { "images": [ { "image": [ "https://files.readme.io/EDQhUDjT7e80EQRnnj9c_ios11.png", "ios11.png", "1105", "966", "#90523c", "" ], "caption": "Figure 11. Generating the SSL certificate" } ] } [/block] **3.4.** Your SSL Certificate will now be generated. Click **Continue**, and then click **Download** to download SSL Certificate to your drive. Click **Done** (Figure 12). [block:image] { "images": [ { "caption": "Figure 12. Downloading Certificate", "image": [ "https://files.readme.io/FBD6FymRa64lbxOO6gDJ_ios12.png", "ios12.png", "1105", "1031", "#8c553f", "" ] } ] } [/block] **3.5.** Download and double-click the certificate to install it in the Keychain Access application (Figure 13). This is the SSL certificate Pushwoosh uses to contact the APNs and send push notifications to your applications. Now you need to export the certificate. [block:image] { "images": [ { "caption": "Figure 13. Installing the generated certificate into the Keychain Access application", "image": [ "https://files.readme.io/otkSJZKBS46viO9S5wQN_ios13.png", "ios13.png", "991", "669", "#364778", "" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "4. Exporting Private Key" } [/block] **4.1.** Open **Keychain Access** and select the ‘Keys’ category. Click the private key associated with your iOS Push Certificate and click ‘Export Items’ in the menu (Figure 14). [block:callout] { "type": "warning", "body": "Please note that this is not a private key for your iOS Development certificate." } [/block] You will be prompted to create a password. You will need to enter the same password on Pushwoosh configuration page. [block:callout] { "type": "success", "body": "This is the file you need to upload to Pushwoosh. You will need to enter the same password to create the Private Key (see right above)." } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/Jmwik2fWRh6hD2xHmSwZ_ios14-1.png", "ios14-1.png", "879", "557", "#854f27", "" ] } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/3RwqBfcZRyavZuM5EFsg_ios14-2.png", "ios14-2.png", "991", "669", "#8c4c1c", "" ] } ] } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/EemFHEUiQCyE8f880iUd_ios14-3.png", "ios14-3.png", "558", "392", "#894b1c", "" ], "caption": "Figure 14. Exporting Key file" } ] } [/block] **4.2.** To install the Certificate and Private Key for the application log in to your Control Panel, go to **My applications**, select your application, and open **Configure** page in the left menu (Figure 15). [block:image] { "images": [ { "caption": "Figure 15. App Configuration Page", "image": [ "https://files.readme.io/mKbDcxeMSfOAqqen8OIk_ios15.png", "ios15.png", "1187", "674", "#066289", "" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "5. Configure push notifications through Control Panel" } [/block] Select iOS platform by clicking **Configure** button. Push notifications can be configured through Control Panel manually or automatically. **5.1.** For Manual Configuration upload the private key to Pushwoosh, enter your Private key password, and select your framework, then click **Save** (Figure 16). [block:image] { "images": [ { "caption": "Figure 16. Uploading Certificate and Private Key files (Manual Configuration)", "image": [ "https://files.readme.io/2YZbC17KTxGhcG64UDo5_ios16.png", "ios16.png", "572", "553", "#388326", "" ] } ] } [/block] [block:api-header] { "type": "basic", "title": "5.2. Auto Configuration (available for Developer accounts)" } [/block] For Auto Configuration select “Auto” tab and follow these next steps: * 1) Enter your Apple ID and Password * 2) Select your Developer team * 3) Select your App ID * 4) Select the gateway you want to configure: Sandbox for developer app builds, Production (aka Distribution) gateway for AdHoc and AppStore builds [block:image] { "images": [ { "image": [ "https://files.readme.io/Ec4cHJ7ITIez8JiPtIkd_ios17.png", "ios17.png", "578", "800", "#0fa2d9", "" ] } ] } [/block] [block:callout] { "type": "danger", "body": "During Auto Configuration a new APNs certificate for the specified Apple App ID is generated. Therefore any existing APNs certificates for this Apple App ID will be revoked." } [/block]