{"id":34240,"date":"2025-01-20T18:38:13","date_gmt":"2025-01-20T13:08:13","guid":{"rendered":"https:\/\/mobisoftinfotech.com\/resources\/?p=34240"},"modified":"2026-04-22T11:06:49","modified_gmt":"2026-04-22T05:36:49","slug":"flutter-ios-build-custom-script-part-1","status":"publish","type":"post","link":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1","title":{"rendered":"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)"},"content":{"rendered":"<p>In today\u2019s fast-paced mobile app development landscape, automation is crucial for boosting efficiency and reducing manual errors. Flutter, Google&#8217;s popular framework for building cross-platform applications, makes it easy to create apps for both iOS and Android. However, when it comes to generating production-ready builds for multiple platforms, manually managing the build process can quickly become cumbersome and prone to mistakes.<\/p>\n\n\n\n<p>This is where custom build scripts come into play. Automating the Flutter iOS build process for both iOS and Android not only saves time but also ensures consistency, reduces human error, and improves the overall development workflow. In this guide, I will walk through how to create and configure custom build scripts for your Flutter apps, enabling you to seamlessly automate the creation of iOS and Android builds. Whether you&#8217;re getting ready for app deployment, configuring CI\/CD Flutter iOS, or simply aiming to optimize your workflow, these build scripts are an essential tool for any Flutter developer.<\/p>\n\n\n\n<p>Let\u2019s get started and learn how to set up these scripts to automate the process of building your Flutter apps for both iOS and Android.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mobisoftinfotech.com\/contact-us?utm_source=blog&amp;utm_medium=referral&amp;utm_campaign=flutter-ios-build-custom-script-part-1-cta1\"><noscript><img decoding=\"async\" width=\"855\" height=\"250\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/contact-custom-build-scripts-flutter-ios.png\" alt=\"Flutter iOS custom build script configuration guide\" class=\"wp-image-34288\" title=\"Contact for Custom Flutter iOS Build Scripts Assistance\"><\/noscript><img decoding=\"async\" width=\"855\" height=\"250\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20250%22%3E%3C%2Fsvg%3E\" alt=\"Flutter iOS custom build script configuration guide\" class=\"wp-image-34288 lazyload\" title=\"Contact for Custom Flutter iOS Build Scripts Assistance\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/contact-custom-build-scripts-flutter-ios.png\"><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating Build Script for iOS<\/strong><\/h2>\n\n\n\n<p>To build an iOS app and generate an IPA file, you must first enroll in the <a href=\"https:\/\/developer.apple.com\/programs\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apple Developer Program<\/a>, register the bundle ID, and create the required distribution certificate and provisioning profile. Ensure that these are properly installed on your Mac before proceeding with the Flutter iOS build configuration process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Create <code>ExportOptions.plist<\/code> file<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>&#8211; Why is <code>ExportOptions.plist<\/code> needed?<\/strong><\/h4>\n\n\n\n<p><strong>Automated Build Configuration<\/strong> <\/p>\n\n\n\n<p style=\"margin-top:-15px;\">During automated builds (like in CI\/CD Flutter iOS pipelines), Xcode needs to know how to sign and export the IPA without manual intervention. The ExportOptions.plist file provides these instructions in a machine-readable format.<\/p>\n\n\n\n<p><strong>Signing Information<\/strong> <\/p>\n\n\n\n<p style=\"margin-top:-15px;\">Specifies which signing certificates and provisioning profiles to use\nDetermines the signing method (development, ad-hoc, enterprise, or app store) Maps bundle identifiers to provisioning profiles for apps with extensions\n<\/p>\n\n\n\n<p><strong>Distribution Settings<\/strong> <\/p>\n\n\n\n<p style=\"margin-top:-15px;\">Defines how the app should be distributed (App Store, Ad Hoc, Enterprise, etc.)<\/p>\n\n\n\n<p><strong>Sample ExportOptions.plist file<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-meta\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span>\n<span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">plist<\/span> <span class=\"hljs-meta-keyword\">PUBLIC<\/span> <span class=\"hljs-meta-string\">\"-\/\/Apple\/\/DTD PLIST 1.0\/\/EN\"<\/span> <span class=\"hljs-meta-string\">\"http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">plist<\/span> <span class=\"hljs-attr\">version<\/span>=<span class=\"hljs-string\">\"1.0\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dict<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>destination<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>export<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>method<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>enterprise<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>provisioningProfiles<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dict<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>BUNDLE_ID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>PROVISIONING_PROFILE_NAME<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dict<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>signingCertificate<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>Apple Distribution<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>signingStyle<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>manual<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>stripSwiftSymbols<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">true<\/span>\/&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>teamID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>TEAM_ID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>thinning<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span><span class=\"hljs-symbol\">&amp;lt;<\/span>none<span class=\"hljs-symbol\">&amp;gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dict<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">plist<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Let&#8217;s break down each key-value pair:<\/p>\n\n\n\n<p><strong><span class=\"number-list\">1<\/span> destination<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>destination<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>export<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Specifies where the exported files will be saved. &#8220;export&#8221; is the standard value.<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">2<\/span> method<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>method<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>enterprise<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Defines the distribution method. Here it&#8217;s set to &#8220;enterprise&#8221; for in-house distribution<\/li>\n\n\n\n<li>Other possible values include: &#8220;app-store&#8221;, &#8220;ad-hoc&#8221;, &#8220;development&#8221;<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">3<\/span> provisioningProfiles<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>provisioningProfiles<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dict<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>BUNDLE_ID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>PROVISIONING_PROFILE_NAME<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">dict<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Maps your app&#8217;s bundle identifier to the provisioning profile name<\/li>\n\n\n\n<li>BUNDLE_ID should be replaced with your actual app bundle ID<\/li>\n\n\n\n<li>PROVISIONING_PROFILE_NAME should be replaced with your actual provisioning profile name<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">4<\/span> signingCertificate<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>signingCertificate<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>Apple Distribution<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>&#8211; Specifies which certificate to use for signing the app<\/li>\n\n\n\n<li>&#8220;Apple Distribution&#8221; is used for enterprise and App Store distribution<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">5<\/span> signingStyle<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>signingStyle<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>manual<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Indicates whether the signing is manual or automatic<\/li>\n\n\n\n<li>&#8220;manual&#8221; means you&#8217;re explicitly specifying the certificates and provisioning profiles<\/li>\n<\/ul>\n\n\n\n<p>Note: Make sure you&#8217;re logged into Xcode with your Apple account (Xcode &gt; Preferences &gt; Accounts), and that &#8220;Automatically Manage Signing&#8221; is enabled under the &#8220;Signing &amp; Capabilities&#8221; section in your Xcode project when specifying &#8216;automatic&#8217;.<\/p>\n\n\n\n<p><strong><span class=\"number-list\">6<\/span> stripSwiftSymbols<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>stripSwiftSymbols<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">true<\/span>\/&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>When set to true, removes Swift symbols to reduce app size<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">7<\/span> teamID<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>teamID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span>TEAM_ID<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Your Apple Developer Team ID<\/li>\n\n\n\n<li>Should be replaced with your actual team ID from Apple Developer account<\/li>\n<\/ul>\n\n\n\n<p><strong><span class=\"number-list\">8<\/span> thinning<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">key<\/span>&gt;<\/span>thinning<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">key<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">string<\/span>&gt;<\/span><span class=\"hljs-symbol\">&amp;lt;<\/span>none<span class=\"hljs-symbol\">&amp;gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">string<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Controls app thinning settings<\/li>\n\n\n\n<li>&lt;none&gt; means no app thinning will be applied<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: <\/strong>Once you&#8217;ve updated all the necessary values, copy the <code>ExportOptions.plist<\/code> file to the ios directory of your Flutter project.<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: <\/strong>Now, let&#8217;s attempt to build the iOS project manually using the Flutter command.<\/h3>\n\n\n\n<p>Open Terminal, navigate to your Flutter project directory, and execute the following command:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">flutter build ipa \\\n&nbsp;&nbsp;&nbsp;&nbsp;--<span class=\"hljs-keyword\">export<\/span>-options-plist=ios\/exportOptions.plist \\\n&nbsp;&nbsp;&nbsp;&nbsp;--release<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>If you\u2019ve correctly configured your <code>exportOptions.plist<\/code> file and ensured that Xcode has the proper provisioning profile and certificate, you should be able to generate the IPA successfully.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><noscript><img decoding=\"async\" width=\"1207\" height=\"976\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/test-build-flutter-ios-deployment.png\" alt=\"Testing Flutter iOS app build for deployment readiness\" class=\"wp-image-34283\" title=\"Test Build for Flutter iOS App Deployment\"><\/noscript><img decoding=\"async\" width=\"1207\" height=\"976\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201207%20976%22%3E%3C%2Fsvg%3E\" alt=\"Testing Flutter iOS app build for deployment readiness\" class=\"wp-image-34283 lazyload\" title=\"Test Build for Flutter iOS App Deployment\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/test-build-flutter-ios-deployment.png\"><\/figure>\n\n\n\n<p>Note: The build will be generated in the <code>build\/ios\/ipa<\/code> directory within your project folder.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: <\/strong>Let\u2019s create a bash script to encapsulate the entire build creation process.<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-comment\">#!\/bin\/bash<\/span>\n\n<span class=\"hljs-comment\"># Default values<\/span>\nBUILD_NAME=<span class=\"hljs-string\">\"1.0.0\"<\/span>\nBUILD_NUMBER=<span class=\"hljs-string\">\"1\"<\/span>\nEXPORT_OPTIONS_PLIST=<span class=\"hljs-string\">\"ios\/exportOptions.plist\"<\/span>\n...\n\ncd ..\n<span class=\"hljs-comment\"># Build iOS IPA<\/span>\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Building iOS IPA\"<\/span>\n...\n\nflutter build ipa \\\n&nbsp;&nbsp;&nbsp;&nbsp;--build-name=<span class=\"hljs-string\">\"$BUILD_NAME\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--build-number=<span class=\"hljs-string\">\"$BUILD_NUMBER\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--export-options-plist=<span class=\"hljs-string\">\"$EXPORT_OPTIONS_PLIST\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--release \\\n&nbsp;&nbsp;&nbsp;&nbsp;-v\n<span class=\"hljs-comment\"># Immediately after build, check the exit code and directory<\/span>\nBUILD_RESULT=$?\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Build exit code: $BUILD_RESULT\"<\/span>\n<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Contents of build directory:\"<\/span>\nls -R build\/ios\/\n<span class=\"hljs-comment\"># Check if build was successful<\/span>\n<span class=\"hljs-keyword\">if<\/span> &#091; $BUILD_RESULT -eq <span class=\"hljs-number\">0<\/span> ]; then\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Build completed successfully!\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"IPA file location: .\/build\/ios\/ipa\/\"<\/span>\n<span class=\"hljs-keyword\">else<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Build failed!\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"Please ensure:\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"1. Valid provisioning profile is configured in Xcode\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"2. exportOptions.plist contains correct provisioning profile information\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"3. Signing certificates are properly installed\"<\/span>\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"hljs-keyword\">exit<\/span> <span class=\"hljs-number\">1<\/span>\nfi<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The above shell script automates the process of building a Flutter iOS app. It generates an IPA file (iOS App Store Package) that can be used for App Store deployment or distributed for testing.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Version Control:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Accepts two optional parameters:\n<ul class=\"wp-block-list\">\n<li><code>-v<\/code> for version name (e.g., &#8220;1.0.0&#8221;)<\/li>\n\n\n\n<li><code>-b<\/code> for build number (e.g., &#8220;1&#8221;)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Build Process:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cleans previous builds using <code>flutter clean<\/code><\/li>\n\n\n\n<li>Updates project dependencies with <code>flutter pub get<\/code><\/li>\n\n\n\n<li>Installs iOS-specific dependencies using <code>pod install<\/code><\/li>\n\n\n\n<li>Builds the IPA file with the provided version and build number<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Error Handling:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Checks for the existence of required files (such as <code>exportOptions.plist<\/code>)<\/li>\n\n\n\n<li>Validates each step of the build process<\/li>\n\n\n\n<li>Provides detailed error messages if any step fails<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Output:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The final IPA file is created in the<code> .\/build\/ios\/ipa\/<\/code> directory<\/li>\n\n\n\n<li>Detailed logs are displayed throughout the build process<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Usage Example:<\/strong><\/h4>\n\n\n\n<p><code>sh build_ios_flutter.sh -v BUILD_NAME -b BUILD_NUMBER<\/code><\/p>\n\n\n\n<p><code>sh build_ios_flutter.sh -v 1.0.0 -b 1<\/code><\/p>\n\n\n\n<p>This command will build your iOS app with version 1.0.0 and build number 1. If you don&#8217;t provide these parameters, the script will use the default values (version=&#8221;1.0.0&#8243;, build=&#8221;1&#8243;).<\/p>\n\n\n\n<p>Note: Copy the above bash script to your Flutter project directory and ensure it has the correct permissions. Grant the script read and write access by executing the following command in your terminal:<\/p>\n\n\n\n<p><code>chmod +x build_ios_flutter.sh<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5: Building a Custom Flavor for iOS<\/strong><\/h3>\n\n\n\n<p>If your app supports multiple flavors, let&#8217;s update the script to generate builds for each specific flavor.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">flutter build ipa \\\n&nbsp;&nbsp;&nbsp;&nbsp;--flavor <span class=\"hljs-string\">\"$FLAVOR\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--dart-define=FLAVOR=<span class=\"hljs-string\">\"$FLAVOR\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--build-name=<span class=\"hljs-string\">\"$BUILD_NAME\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--build-number=<span class=\"hljs-string\">\"$BUILD_NUMBER\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--<span class=\"hljs-keyword\">export<\/span>-options-plist=<span class=\"hljs-string\">\"$EXPORT_OPTIONS_PLIST\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;--release \\\n&nbsp;&nbsp;&nbsp;&nbsp;-t <span class=\"hljs-string\">\"lib\/main_$FLAVOR.dart\"<\/span> \\\n&nbsp;&nbsp;&nbsp;&nbsp;-v<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Flavors Specific Arguments:<\/strong><strong><br><\/strong><\/h3>\n\n\n\n<p><strong><code>--flavor \"$FLAVOR\":<\/code><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Specifies which flavor (variant) of the app to build<\/li>\n\n\n\n<li>Common flavors might be &#8216;dev&#8217;, &#8216;staging&#8217;, &#8216;prod&#8217;<\/li>\n\n\n\n<li>This corresponds to different build configurations in Xcode<\/li>\n<\/ul>\n\n\n\n<p><strong><code>--dart-define=FLAVOR=\"$FLAVOR\":<\/code><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Passes the flavor value as a compile-time constant to your Dart code<\/li>\n<\/ul>\n\n\n\n<p><strong><code>-t \"lib\/main_$FLAVOR.dart\":<\/code><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Specifies the entry point file for the app<\/li>\n\n\n\n<li>Uses different main files for different flavors<\/li>\n\n\n\n<li>Example: main_dev.dart, main_prod.dart<\/li>\n<\/ul>\n\n\n\n<p>Looking to add flavors to your Flutter app? Check out our blog post for a step-by-step guide <a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/customize-flutter-app-flavors-environments\">here<\/a>!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summing It Up<\/h2>\n\n\n\n<p>I hope you found this tutorial on Creating iOS Builds for Flutter Apps with a Custom Build Script helpful. You can download the complete script from<a href=\"https:\/\/git.launchpad.net\/flutter-custom-build-scripts\/tree\/?h=main\" target=\"_blank\" rel=\"noreferrer noopener\"> <strong>here.<\/strong><\/a><\/p>\n\n\n\n<p>In Part 2, we\u2019ll dive into <a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-android-build-custom-script-part-2\">Creating Android Builds for Flutter Apps with a Custom Build Script<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/mobisoftinfotech.com\/services\/flutter-app-development-company?utm_source=blog&amp;utm_medium=referral&amp;utm_campaign=flutter-ios-build-custom-script-part-1-cta2\"><noscript><img decoding=\"async\" width=\"855\" height=\"250\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/explore-flutter-resources-ios-build.png\" alt=\"Explore more Flutter resources for iOS builds and development\" class=\"wp-image-34285\" title=\"Let's Explore More Flutter Resources for iOS Builds and Development\"><\/noscript><img decoding=\"async\" width=\"855\" height=\"250\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20855%20250%22%3E%3C%2Fsvg%3E\" alt=\"Explore more Flutter resources for iOS builds and development\" class=\"wp-image-34285 lazyload\" title=\"Let's Explore More Flutter Resources for iOS Builds and Development\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/explore-flutter-resources-ios-build.png\"><\/a><\/figure>\n\n\n<div class=\"related-posts-section\"><h2>Related Posts<\/h2><ul class=\"related-posts-list\"><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/patient-provider-communication\">Patient Care Begins with Patient-Provider Communication<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/robots-as-a-service-in-logistics-and-warehousing\">Logistics And Warehousing: Is Robots-As-a-Service The Future?<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/non-functional-testing-guide\">Everything You Need to Know About Non-functional Testing in One Comprehensive Guide<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/scanning-solutions-for-warehousing\">Scanning Solutions for Warehousing Refining Warehouse Management Operations<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/programming-languages-in-healthcare-app-development\">Programming Languages Used in Healthcare App Development<\/a><\/li><li><a href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/what-is-interoperability-and-why-is-it-important-in-healthcare\">What Is Interoperability and Why Is It Important in Healthcare?<\/a><\/li><\/ul><\/div>\n\n\n<div class=\"modern-author-card\">\n    <div class=\"author-card-content\">\n        <div class=\"author-info-section\">\n            <div class=\"author-avatar\">\n                <noscript><img decoding=\"async\" src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2023\/08\/prashant.png\" alt=\"Prashant Telangi\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"Prashant Telangi\" data-src=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2023\/08\/prashant.png\" class=\" lazyload\">\n            <\/div>\n            <div class=\"author-details\">\n                <h3 class=\"author-name\">Prashant Telangi<\/h3>\n                <p class=\"author-title\">Head of Technology, Mobile<\/p>\n                <a href=\"javascript:void(0);\" class=\"read-more-link read-more-btn\" onclick=\"toggleAuthorBio(this); return false;\">Read more <noscript><img decoding=\"async\" src=\"\/assets\/images\/blog\/Vector.png\" alt=\"expand\" class=\"read-more-arrow down-arrow\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"expand\" class=\"read-more-arrow down-arrow lazyload\" data-src=\"\/assets\/images\/blog\/Vector.png\"><\/a>\n                <div class=\"author-bio-expanded\">\n                    <p>Prashant Telangi brings over 15 years of experience in Mobile Technology, He is currently serving as Head of Technology, Mobile at <a href=\"https:\/\/mobisoftinfotech.com\" target=\"_blank\">Mobisoft Infotech<\/a>. With a proven history in IT and services, he is a skilled, passionate developer specializing in Mobile Applications. His strong engineering background underscores his commitment to crafting innovative solutions in the ever-evolving tech landscape.<\/p>\n                    <div class=\"author-social-links\"><div class=\"social-icon\"><a href=\"https:\/\/www.linkedin.com\/in\/prashant-telangi-83816918\/\" target=\"_blank\" rel=\"nofollow noopener\"><i class=\"icon-sprite linkedin\"><\/i><\/a>\n                     <a href=\"https:\/\/twitter.com\/PrashantAnna\" target=\"_blank\" rel=\"nofollow noopener\"><i class=\"icon-sprite twitter\"><\/i><\/a>\n                     <a href=\"https:\/\/www.facebook.com\/prashant.telangi\/\" target=\"_blank\" rel=\"nofollow noopener\"><i class=\"icon-sprite facebook\"><\/i><\/a><\/div><\/div>\n                    <a href=\"javascript:void(0);\" class=\"read-more-link read-less-btn\" onclick=\"toggleAuthorBio(this); return false;\" style=\"display: none;\">Read less <noscript><img decoding=\"async\" src=\"\/assets\/images\/blog\/Vector.png\" alt=\"collapse\" class=\"read-more-arrow up-arrow\"><\/noscript><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"collapse\" class=\"read-more-arrow up-arrow lazyload\" data-src=\"\/assets\/images\/blog\/Vector.png\"><\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"share-section\">\n            <span class=\"share-label\">Share Article<\/span>\n            <div class=\"social-share-buttons\">\n                <a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fmobisoftinfotech.com%2Fresources%2Fblog%2Fflutter-ios-build-custom-script-part-1\" target=\"_blank\" class=\"share-btn facebook-share\"><i class=\"fa fa-facebook-f\"><\/i><\/a>\n                <a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fmobisoftinfotech.com%2Fresources%2Fblog%2Fflutter-ios-build-custom-script-part-1\" target=\"_blank\" class=\"share-btn linkedin-share\"><i class=\"fa fa-linkedin\"><\/i><\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Article\",\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\"\n  },\n  \"headline\": \"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)\",\n  \"description\": \"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.\",\n  \"image\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Prashant Telangi\",\n    \"description\": \"Prashant Telangi brings over 14 years of experience in Mobile Technology, He is currently serving as Head of Technology, Mobile at Mobisoft Infotech. With a proven history in IT and services, he is a skilled, passionate developer specializing in Mobile Applications. His strong engineering background underscores his commitment to crafting innovative solutions in the ever-evolving tech landscape.\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Mobisoft Infotech\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\/\/mobisoftinfotech.com\/assets\/images\/mshomepage\/MI_Logo-white.svg\",\n      \"width\": 600,\n      \"height\": 60\n    }\n  },\n  \"datePublished\": \"2025-01-20\",\n  \"dateModified\": \"2025-01-20\"\n}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Organization\",\n  \"name\": \"Mobisoft Infotech\",\n  \"url\": \"https:\/\/mobisoftinfotech.com\/\",\n  \"logo\": \"https:\/\/mobisoftinfotech.com\/assets\/images\/MI_Logo.svg\",\n  \"sameAs\": [\n    \"https:\/\/www.facebook.com\/pages\/Mobisoft-Infotech\/131035500270720\",\n    \"https:\/\/twitter.com\/MobisoftInfo\",\n    \"https:\/\/www.instagram.com\/mobisoftinfotech\/\",\n    \"https:\/\/www.youtube.com\/channel\/UCtwuTXKUXFX7k0NSYhsMeTg\",\n    \"https:\/\/www.linkedin.com\/company\/mobisoft-infotech\",\n    \"https:\/\/in.pinterest.com\/mobisoftinfotech\/\",\n    \"https:\/\/github.com\/MobisoftInfotech\"\n  ],\n  \"contactPoint\": [\n    {\n      \"@type\": \"ContactPoint\",\n      \"telephone\": \"+1-855-572-2777\",\n      \"contactType\": \"Customer Service\",\n      \"areaServed\": \"US\",\n      \"availableLanguage\": [\"English\"]\n    },\n    {\n      \"@type\": \"ContactPoint\",\n      \"telephone\": \"+91-858-600-8627\",\n      \"contactType\": \"Customer Service\",\n      \"areaServed\": \"IN\",\n      \"availableLanguage\": [\"English\"]\n    }\n  ]\n}\n<\/script>\n<script type=\"application\/ld+json\">\n    [\n    {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\n            \"name\": \"Creating iOS Build for Flutter Apps with Custom Build Script\",\n            \"caption\": \"Set up and automate iOS builds for Flutter apps with a custom build script for faster deployment\",\n            \"description\": \"A step-by-step guide to creating a custom iOS build script in Flutter to streamline app deployment and improve build efficiency.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\"\n        },\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/contact-custom-build-scripts-flutter-ios.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\n            \"name\": \" Contact for Custom Flutter iOS Build Scripts Assistance\",\n            \"caption\": \"Have questions on how to set up custom build scripts for your Flutter iOS apps? We\u2019re here to assist you.\",\n            \"description\": \"This call-to-action invites readers to reach out for support on creating and implementing custom build scripts for Flutter iOS applications.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/contact-custom-build-scripts-flutter-ios.png\"\n        },\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/explore-flutter-resources-ios-build.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\n            \"name\": \"Let's Explore More Flutter Resources for iOS Builds and Development\",\n            \"caption\": \"Ready to enhance your Flutter iOS builds? Explore more resources and development tools to optimize your app deployment.\",\n            \"description\": \"An engaging call-to-action to explore additional resources on improving Flutter iOS build processes, CI\/CD, and more.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/explore-flutter-resources-ios-build.png\"\n        },\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"ImageObject\",\n            \"contentUrl\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/test-build-flutter-ios-deployment.png\",\n            \"url\": \"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\n            \"name\": \"Test Build for Flutter iOS App Deployment\",\n            \"caption\": \"Test the iOS build to ensure everything is set before deployment to production for your Flutter app\",\n            \"description\": \"A screenshot showing the test phase of a Flutter iOS app build to ensure everything is in order before final deployment.\",\n            \"license\": \"https:\/\/mobisoftinfotech.com\/terms\",\n            \"acquireLicensePage\": \"https:\/\/mobisoftinfotech.com\/acquire-license\",\n            \"creditText\": \"Mobisoft Infotech\",\n            \"copyrightNotice\": \"Mobisoft Infotech\",\n            \"creator\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Mobisoft Infotech\"\n            },\n            \"thumbnail\": \"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/test-build-flutter-ios-deployment.png\"\n        }\n        ]\n    <\/script>\n<style>\n@media only screen and (max-width:767px){.post-content li:before {\n    content: '';\n    width: 9px;\n    height: 9px;\n    background-color: #0d265c;\n    border-radius: 50%;\n    position: absolute;\n    left: 0px;\n    top: 12px;\n}\n.post-content li {\n    padding-left: 25px;\n}\n.post-content p, .post-content li{text-align: left;}}\n.number-list{\n    border-radius: 5px;\n    background-color: #4960e3;\n    font-size: 25px;\n    font-weight: bold;\n    line-height: 1.96;\n    color: #ffffff;\n    padding: 5px 12px;\n    margin-right:4px;\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s fast-paced mobile app development landscape, automation is crucial for boosting efficiency and reducing manual errors. Flutter, Google&#8217;s popular framework for building cross-platform applications, makes it easy to create apps for both iOS and Android. However, when it comes to generating production-ready builds for multiple platforms, manually managing the build process can quickly become [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":34281,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[286],"tags":[4582,4576,4578,4583,4581,4577,4584,4579,4580,4575],"class_list":["post-34240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-ci-cd-flutter-ios","tag-custom-build-script-flutter","tag-flutter-build-automation","tag-flutter-build-process-ios","tag-flutter-build-tools","tag-flutter-ios-build-configuration","tag-flutter-ios-deployment","tag-flutter-ios-release-build","tag-ios-app-build-script","tag-ios-build-flutter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating iOS Builds for Flutter Apps: Custom Script (Part 1)<\/title>\n<meta name=\"description\" content=\"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating iOS Builds for Flutter Apps: Custom Script (Part 1)\" \/>\n<meta property=\"og:description\" content=\"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\" \/>\n<meta property=\"og:site_name\" content=\"Mobisoft Infotech\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-20T13:08:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-22T05:36:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/og-Creating-iOS-Build-for-Flutter-Apps-with-Custom-Build-Script.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"525\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Prashant Telangi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prashant Telangi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#article\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\"},\"author\":{\"name\":\"Prashant Telangi\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\"},\"headline\":\"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)\",\"datePublished\":\"2025-01-20T13:08:13+00:00\",\"dateModified\":\"2026-04-22T05:36:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\"},\"wordCount\":986,\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\"keywords\":[\"CI\/CD Flutter iOS\",\"Custom build script Flutter\",\"Flutter build automation\",\"Flutter build process iOS\",\"Flutter build tools\",\"Flutter iOS build configuration\",\"Flutter iOS deployment\",\"Flutter iOS release build\",\"iOS app build script\",\"iOS build Flutter\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\",\"name\":\"Creating iOS Builds for Flutter Apps: Custom Script (Part 1)\",\"isPartOf\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage\"},\"image\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage\"},\"thumbnailUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\"datePublished\":\"2025-01-20T13:08:13+00:00\",\"dateModified\":\"2026-04-22T05:36:49+00:00\",\"author\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\"},\"description\":\"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.\",\"breadcrumb\":{\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\"contentUrl\":\"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png\",\"width\":855,\"height\":392,\"caption\":\"Custom iOS build script for Flutter app development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mobisoftinfotech.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#website\",\"url\":\"https:\/\/mobisoftinfotech.com\/resources\/\",\"name\":\"Mobisoft Infotech\",\"description\":\"Discover Mobility\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070\",\"name\":\"Prashant Telangi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g\",\"caption\":\"Prashant Telangi\"},\"sameAs\":[\"http:\/\/www.mobisoftinfotech.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating iOS Builds for Flutter Apps: Custom Script (Part 1)","description":"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1","og_locale":"en_US","og_type":"article","og_title":"Creating iOS Builds for Flutter Apps: Custom Script (Part 1)","og_description":"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.","og_url":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1","og_site_name":"Mobisoft Infotech","article_published_time":"2025-01-20T13:08:13+00:00","article_modified_time":"2026-04-22T05:36:49+00:00","og_image":[{"width":1000,"height":525,"url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/og-Creating-iOS-Build-for-Flutter-Apps-with-Custom-Build-Script.png","type":"image\/png"}],"author":"Prashant Telangi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prashant Telangi","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#article","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1"},"author":{"name":"Prashant Telangi","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070"},"headline":"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)","datePublished":"2025-01-20T13:08:13+00:00","dateModified":"2026-04-22T05:36:49+00:00","mainEntityOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1"},"wordCount":986,"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png","keywords":["CI\/CD Flutter iOS","Custom build script Flutter","Flutter build automation","Flutter build process iOS","Flutter build tools","Flutter iOS build configuration","Flutter iOS deployment","Flutter iOS release build","iOS app build script","iOS build Flutter"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1","url":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1","name":"Creating iOS Builds for Flutter Apps: Custom Script (Part 1)","isPartOf":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage"},"image":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage"},"thumbnailUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png","datePublished":"2025-01-20T13:08:13+00:00","dateModified":"2026-04-22T05:36:49+00:00","author":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070"},"description":"Learn how to create iOS builds for Flutter apps using a custom build script. This is Part 1 of our series on automating Flutter iOS app deployments.","breadcrumb":{"@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#primaryimage","url":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png","contentUrl":"https:\/\/mobisoftinfotech.com\/resources\/wp-content\/uploads\/2025\/01\/creating-ios-build-flutter-custom-script.png","width":855,"height":392,"caption":"Custom iOS build script for Flutter app development"},{"@type":"BreadcrumbList","@id":"https:\/\/mobisoftinfotech.com\/resources\/blog\/flutter-ios-build-custom-script-part-1#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mobisoftinfotech.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Creating iOS Build for Flutter Apps with Custom Build Script (Part 1)"}]},{"@type":"WebSite","@id":"https:\/\/mobisoftinfotech.com\/resources\/#website","url":"https:\/\/mobisoftinfotech.com\/resources\/","name":"Mobisoft Infotech","description":"Discover Mobility","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mobisoftinfotech.com\/resources\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/mobisoftinfotech.com\/resources\/#\/schema\/person\/d7a32c3195dc5efe2829391045ffc070","name":"Prashant Telangi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdde432a920f6002154a0769008dfecabe1f464d11187612020b889ad41808e7?s=96&r=g","caption":"Prashant Telangi"},"sameAs":["http:\/\/www.mobisoftinfotech.com"]}]}},"_links":{"self":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/34240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/comments?post=34240"}],"version-history":[{"count":57,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/34240\/revisions"}],"predecessor-version":[{"id":49134,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/posts\/34240\/revisions\/49134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media\/34281"}],"wp:attachment":[{"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/media?parent=34240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/categories?post=34240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mobisoftinfotech.com\/resources\/wp-json\/wp\/v2\/tags?post=34240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}