{"id":10510,"date":"2025-09-22T20:06:03","date_gmt":"2025-09-23T00:06:03","guid":{"rendered":"https:\/\/learndash.com\/support\/?post_type=docs&#038;p=10510"},"modified":"2026-04-22T08:33:55","modified_gmt":"2026-04-22T12:33:55","password":"","slug":"generate-ios-release","status":"publish","type":"docs","link":"https:\/\/learndash.com\/support\/kb\/learndash-app\/uncategorized\/generate-ios-release\/","title":{"rendered":"How to Generate iOS Release Apps"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\"><strong>Introduction<\/strong><\/h2>\n\n\n\n<p>Creating a Release App for iOS is easy with the Learndash App\u2019s cloud-based build system. Release builds are fully packaged IPAs ready for submission to <strong>TestFlight<\/strong> and the <strong>Apple App Store<\/strong>, including your branding, site configuration, and any custom code.<\/p>\n\n\n\n<p>This guide walks you through creating an iOS Release App, uploading it to App Store Connect, inviting testers, and installing it via TestFlight\u2014no Xcode required.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use Test Apps<\/strong> for daily testing and development.<\/li>\n\n\n\n<li><strong>Use Release Apps<\/strong> for App Store submission and accurate In-App Purchase testing.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-when-to-use-a-release-app-vs-test-app\"><strong>When to Use a Release App vs. Test App<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Test App<\/strong><strong><br><\/strong> Ideal for daily QA and development. Installable via QR code. In-App Purchases show placeholder pricing.<br><\/li>\n\n\n\n<li><strong>Release App<\/strong><strong><br><\/strong> Required for App Store submission and testing real In-App Purchase prices and terms. Apple links these to your Release App\u2019s Bundle ID.<br><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-an-ios-release-app-build\"><strong>Creating an iOS Release App Build<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>WordPress Admin > Learndash App > Builds<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Click <strong>Request Build<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfK9v0d7-gtuGNoEX5ri6P0MctJTLEDDPpqVSotYK5eHIkGRwORWIdeiN-mDPYJAp12_MIl_qkZ77I-5bc5w6SVIKyaJDi0IGMxl-oOGR4_reQtX7a4ixYaCPL5gVZYXVSWI7s5ZA?key=cDK-GvY3oSMVXBAORPSfpg\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Select <strong>iOS<\/strong> under Platform and <strong>Release App<\/strong> for Build Type<br><\/li>\n\n\n\n<li>Click <strong>Next<\/strong>, review your settings, then click <strong>Send Build Request<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXfFVZd96bOLiNpOItI5kwiBWVk7eHxmZaEsalps8akCTpxAlddkljFzV4DkgjTV-tqmuHKZKDpS8DFBQdl5UnJ3jc3MZgvV1EBS5lyvNvbmE1-VVHhA8Wpw_M6IrppDBxR81ptu6w?key=cDK-GvY3oSMVXBAORPSfpg\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Wait 15\u201360 minutes while the build is created (use <strong>Recheck Status Now<\/strong> to refresh)<br><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-downloading-the-ipa-file\"><strong>Downloading the IPA File<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Once complete, go to <strong>Build History<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Click <strong>Install on IOS Device ><\/strong> <strong>Download IPA File<\/strong> on your new Release build card.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXezN0SwiY1sJYtzdQlqCZzneiMHuHN9lm2NkAbbZ2_UsB-x6li2JQ6tBkPX6RKTuba2PUgH9DUtF9ToEqZ1OfkxyClrCZyYDwTHyfHS-lDPCQnp1iEMMetxyihNSFIBgummQIYGwg?key=cDK-GvY3oSMVXBAORPSfpg\" alt=\"\"\/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Save the IPA to your computer for upload to App Store Connect<br><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-uploading-to-app-store-connect-testflight\"><strong>Uploading to App Store Connect (TestFlight)<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Learndash App > Upload > Apple App Store<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Choose your generated <strong>Release Build<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Click <strong>Upload Build<\/strong><strong><br><\/strong> <em>(Make sure this app exists in your App Store Connect account)<\/em><em><br><\/em><\/li>\n\n\n\n<li>After ~15 minutes, your build appears in <strong>TestFlight<\/strong><strong><br><\/strong><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-adding-testers-in-testflight\"><strong>Adding Testers in TestFlight<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to <strong>App Store Connect > Users and Access > People<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Click <strong>+<\/strong> to invite each tester by their <strong>Apple ID email<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Assign any role (e.g., Developer) and select your app<br><\/li>\n\n\n\n<li>Go to <strong>My Apps > [Your App] > TestFlight > Internal Testing > Testers > +<\/strong> and add them<br><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-installing-via-testflight\"><strong>Installing via TestFlight<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Ask testers to install the <strong>TestFlight<\/strong> app from the App Store<br><\/li>\n\n\n\n<li>They\u2019ll receive an invitation and see your app listed<br><\/li>\n\n\n\n<li>Tap <strong>Install<\/strong>, then <strong>Open<\/strong> to test the Release App<br><\/li>\n<\/ol>\n\n\n\n<p>Now they\u2019ll see real In-App Purchase pricing and app behavior as it would appear post-publish.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-uploading-new-release-builds\"><strong>Uploading New Release Builds<\/strong><\/h2>\n\n\n\n<p>Any time you update app settings or code:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Request a new <strong>Release Build<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Upload it again via <strong>Learndash App > Upload Build > Apple App Store<\/strong><strong><br><\/strong><\/li>\n\n\n\n<li>Testers will receive an update notification in TestFlight<br><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcrezsll5HH98RtK32YqgVsfVkgPqOux8uOCLVTxAbR2K5HCd6gGI1FarY7RD_Wc_6nLP_MWpcsGFHKFHQzAMYIrAcVP2gS2a0GwBQwz5smFzK2EfTVHyPPEQcgQlhbV7p8wDWT0Q?key=cDK-GvY3oSMVXBAORPSfpg\" alt=\"\"\/><\/figure>\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: Why do In-App Purchases still show placeholder prices?<\/strong><strong><br><\/strong> <strong>A:<\/strong> You\u2019re likely using a Test App. Only Release Apps via TestFlight show real pricing.<\/p>\n\n\n\n<p><strong>Q: My Release build isn\u2019t showing in TestFlight.<\/strong><strong><br><\/strong> <strong>A:<\/strong> Ensure the build was uploaded to the correct App Store Connect app, and the <strong>build number<\/strong> is unique.<\/p>\n\n\n\n<p><strong>Q: Testers can\u2019t see the app in TestFlight.<\/strong><strong><br><\/strong> <strong>A:<\/strong> Confirm they\u2019ve accepted your invitation under <strong>Users and Access<\/strong> and are added under <strong>Internal Testing<\/strong>.<\/p>\n\n\n\n<p><strong>Q: I made changes in GitHub\u2014do I need a new build?<\/strong><strong><br><\/strong> <strong>A:<\/strong> Yes, request a new Release App build to include the latest customizations.<\/p>\n\n\n\n<p><strong>Q: Can I use the Release App for both testing and submission?<\/strong><strong><br><\/strong> <strong>A:<\/strong> Absolutely. Just make sure it\u2019s properly tested via TestFlight before submitting to Apple.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Creating a Release App for iOS is easy with the Learndash App\u2019s cloud-based build system. Release builds are fully packaged IPAs ready for submission to TestFlight and the Apple App Store, including your branding, site configuration, and any custom code. This guide walks you through creating an iOS Release App, uploading it to App&#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":[],"doc_tag":[],"knowledge_base":[283],"class_list":["post-10510","docs","type-docs","status-publish","hentry","knowledge_base-learndash-app"],"year_month":"2026-04","word_count":530,"total_views":"650","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"display_name":"Stephanie Liy","author_link":"https:\/\/learndash.com\/support\/author\/stephaniei\/"},"doc_category_info":[],"doc_tag_info":[],"taxonomy_info":{"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\/10510","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=10510"}],"version-history":[{"count":1,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10510\/revisions"}],"predecessor-version":[{"id":10511,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/docs\/10510\/revisions\/10511"}],"wp:attachment":[{"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/media?parent=10510"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_category?post=10510"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/doc_tag?post=10510"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/learndash.com\/support\/wp-json\/wp\/v2\/knowledge_base?post=10510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}