{"id":10414,"date":"2025-09-22T19:52:00","date_gmt":"2025-09-22T23:52:00","guid":{"rendered":"https:\/\/learndash.com\/support\/?post_type=docs&#038;p=10414"},"modified":"2025-09-23T11:13:59","modified_gmt":"2025-09-23T15:13:59","password":"","slug":"how-to-create-an-apns-auth-key-for-your-learndash-ios-app","status":"publish","type":"docs","link":"https:\/\/learndash.com\/support\/kb\/learndash-app\/advanced-learndash-app\/how-to-create-an-apns-auth-key-for-your-learndash-ios-app\/","title":{"rendered":"How to Create an APNs Auth Key for Your Learndash iOS App"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\"><strong>Introduction<\/strong><\/h2>\n\n\n\n<p>An <strong>APNs (Apple Push Notification service) Auth Key<\/strong> lets your iOS app send push notifications securely and at scale. Instead of managing multiple certificates, a single reusable <strong>.p8 key<\/strong> simplifies renewals and supports both <strong>Test<\/strong> and <strong>Release<\/strong> builds. This guide walks you through generating your APNs key in <strong>Apple Developer<\/strong> and configuring your <strong>Learndash App<\/strong> to use it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-generating-your-apns-auth-key\"><strong>Generating Your APNs Auth Key<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to <strong>Apple Developer<\/strong> and click <strong>Account<\/strong>.<br><\/li>\n\n\n\n<li>Select <strong>Certificates, Identifiers &amp; Profiles<\/strong>.<br><\/li>\n\n\n\n<li>In the sidebar, click <strong>Keys<\/strong>.<br><\/li>\n\n\n\n<li>Click the <strong>+<\/strong> button to create a new key.<br><\/li>\n\n\n\n<li>Enter a <strong>Key Name<\/strong>.<br><\/li>\n\n\n\n<li>Under <strong>Key Services<\/strong>, check <strong>Apple Push Notifications service (APNs)<\/strong>.<br><\/li>\n\n\n\n<li>Click <strong>Continue<\/strong>, then <strong>Register<\/strong>.<br><\/li>\n\n\n\n<li>Click <strong>Download<\/strong> to save the <strong>.p8 file<\/strong> and store it securely.<br><\/li>\n<\/ol>\n\n\n\n<p><strong>Note:<\/strong> You\u2019ll see a <strong>Key ID<\/strong> next to your new key. You\u2019ll need both the <strong>.p8 file<\/strong> and <strong>Key ID<\/strong> in the next step.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuring-the-learndash-app-with-your-apns-key\"><strong>Configuring the Learndash App with Your APNs Key<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In <strong>WordPress<\/strong>, go to <strong>Learndash App &gt; Settings &gt; Integrations &gt; iOS Push Notifications<\/strong>.<br><\/li>\n\n\n\n<li>Click <strong>Upload APNs Key<\/strong>.<br><\/li>\n\n\n\n<li>Select the downloaded <strong>.p8 file<\/strong>.<br><\/li>\n\n\n\n<li>Enter your <strong>Key ID<\/strong> (from Apple Developer) and <strong>Team ID<\/strong> (found under <strong>Apple Developer &gt; Membership<\/strong>).<br><\/li>\n\n\n\n<li>Click <strong>Save Changes<\/strong>.<br>\n<ul class=\"wp-block-list\">\n<li><strong>Prerequisite:<\/strong> Ensure your <strong>Bundle ID<\/strong> matches the one registered in Apple Developer.<br><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1038\" height=\"116\" src=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1.png\" alt=\"Screenshot of push notifications \" class=\"wp-image-10678\" srcset=\"https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1.png 1038w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1-400x45.png 400w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1-800x89.png 800w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1-768x86.png 768w, https:\/\/learndash.com\/support\/wp-content\/uploads\/2025\/08\/How-to-Create-an-APNs-Auth-Key-for-Your-Learndash-iOS-App-_-1-360x40.png 360w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-testing-your-apns-key\"><strong>Testing Your APNs Key<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Request a Test Notification<\/strong> \u2013 In <strong>WP Admin<\/strong>, navigate to <strong>Learndash App &gt; Push Notifications<\/strong> and send a test alert.<br><\/li>\n\n\n\n<li><strong>Verify Delivery<\/strong> \u2013 Confirm the notification appears on both your iOS <strong>Test<\/strong> and <strong>Release<\/strong> app installs.<br><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-troubleshooting-and-faqs\"><strong>Troubleshooting and FAQs<\/strong><\/h2>\n\n\n\n<p><strong>Q: I get an \u201cInvalid key\u201d error when uploading.<\/strong><strong><br><\/strong> A: Make sure you uploaded the <strong>.p8 file<\/strong> (not a certificate) and entered the correct <strong>Key ID<\/strong> and <strong>Team ID<\/strong>.<\/p>\n\n\n\n<p><strong>Q: My test device doesn\u2019t receive notifications.<\/strong><strong><br><\/strong> A: Verify your app build is signed with a provisioning profile that enables <strong>Push Notifications<\/strong> and that the device is using the correct <strong>Bundle ID<\/strong>.<\/p>\n\n\n\n<p><strong>Q: Do I need separate keys per app build?<\/strong><strong><br><\/strong> A: No. A single <strong>APNs Auth Key<\/strong> works for all iOS builds (Test or Release) under your <strong>Team ID<\/strong>.<\/p>\n\n\n\n<p><strong>Q: How often do I renew the key?<\/strong><strong><br><\/strong> A: <strong>APNs Auth Keys<\/strong> do not expire. Regenerate one only if it\u2019s compromised or deleted.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction An APNs (Apple Push Notification service) Auth Key lets your iOS app send push notifications securely and at scale. Instead of managing multiple certificates, a single reusable .p8 key simplifies renewals and supports both Test and Release builds. This guide walks you through generating your APNs key in Apple Developer and configuring your Learndash&#8230;<\/p>\n","protected":false},"author":58,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_helpful_status":1,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_swpsp_post_exclude":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"doc_category":[287],"doc_tag":[],"knowledge_base":[283],"class_list":["post-10414","docs","type-docs","status-publish","hentry","doc_category-advanced-learndash-app","knowledge_base-learndash-app"],"year_month":"2026-04","word_count":361,"total_views":"357","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"display_name":"Stephanie Liy","author_link":"https:\/\/learndash.com\/support\/author\/stephaniei\/"},"doc_category_info":[{"term_name":"Advanced for the Learndash App","term_url":"https:\/\/learndash.com\/support\/kb\/learndash-app\/advanced-learndash-app\/"}],"doc_tag_info":[],"taxonomy_info":{"doc_category":[{"value":287,"label":"Advanced for the Learndash App"}],"knowledge_base":[{"value":283,"label":"LearnDash App"}]},"featured_image_src_large":false,"comment_info":0,"knowledge_base_info":[{"term_name":"LearnDash App","term_url":"https:\/\/learndash.com\/support\/kb\/learndash-app\/","term_slug":"learndash-app"}],"knowledge_base_slug":["learndash-app"],"_links":{"self":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10414","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/comments?post=10414"}],"version-history":[{"count":2,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10414\/revisions"}],"predecessor-version":[{"id":10679,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10414\/revisions\/10679"}],"wp:attachment":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/media?parent=10414"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_category?post=10414"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_tag?post=10414"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/knowledge_base?post=10414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}