/ios-deployment-release-flutter

Comprehensive guide for deploying Flutter apps on iOS. Follow our step-by-step instructions to configure, code sign, and publish your mobile app to the Apple App Store. Simplify the iOS deployment process and ensure a smooth release with this detailed guide.

Flutter iOS Deployment/Release Guide

This guide provides step-by-step instructions on configuring and deploying a Flutter app for iOS. Please follow these steps to ensure a successful deployment.

Step 1: Configure Flutter Project

  1. Open your Flutter project directory.
  2. Verify that the ios folder and its contents are correctly set up.
  3. Configure project settings, including code signing, bundle identifiers, and provisioning profiles, in the ios/Runner.xcworkspace file.

Step 2: Generating Certificates

  1. Go to "Certificates, Identifiers & Profiles" on the Apple Developer website.
  2. Ensure that "iOS, tvOS, watchOS" is selected in the dropdown.
  3. Choose "iOS App Development" as the certificate type.
  4. Generate a Certificate Signing Request (CSR) using Keychain Access. You can find Keychain Access by searching for it using Spotlight.
  5. In the Certificate Assistant window, provide your email address and name, select "Saved to disk," and click "Continue." Save the CSR file on your Mac.
  6. Return to the Developer Center in your browser, click "Continue," and choose the CSR file you just created. Then, click "Continue."
  7. Download the development certificate and double-click the file to install it in the keychain.
  8. Click "Add" in the Keychain Access dialog to complete the installation.
  9. Note: The development certificate is named "ios_development.cer," and for the distribution certificate, it is "ios_distribution.cer."
  10. Ensure that Xcode has been launched.

Step 3: Registering Devices

  1. Select "Devices" from the menu.
  2. To register a device, obtain its UDID. Connect the device to your computer, open iTunes, select the device from the menu bar under the player controls, and copy the UDID to the clipboard.
  3. Back in the browser, enter a device name, paste the UDID, and click "Continue."
  4. Click "Register" if prompted to confirm the registration. You can return later to register additional devices for friends or beta testers.

Step 4: Creating App IDs

  1. With your device registered, create an App ID for your app. Each app you build requires a unique App ID.
  2. You can choose between an Explicit App ID or a Wildcard App ID. Use Explicit App IDs for services like in-app purchases or iCloud. Wildcard App IDs can be used for multiple apps but may limit certain services.
  3. The Bundle ID search string must be unique for each app. Apple recommends using a reverse-domain name style string, e.g., "com.domainname.appname" for Explicit App IDs or "com.domainname.*" for Wildcard App IDs.
  4. Fill in the description and click "Register" to create the App ID.

Step 5: Create Provisioning Profiles

  1. A provisioning profile combines a certificate, an App ID, and device identifiers.
  2. Use Development provisioning profiles during app development and Distribution provisioning profiles for App Store submissions.
  3. Choose "iOS App Development" and select the appropriate App ID.
  4. Select the certificates for the profile and choose the registered devices.
  5. Enter a descriptive name for the profile and click "Download."
  6. If necessary, generate a distribution profile following similar steps.

Step 6: Install Provisioning Profiles in Xcode

  1. Locate the downloaded files on your computer and double-click to launch Xcode.
  2. In the Project navigator, select the project node, go to General, and ensure the Bundle Identifier matches the App ID you created earlier.
  3. In Build Settings, set Code Signing Style to "Manual" and select the Provisioning Profile for Debug and Release builds.

Step 7: Run the App on a Physical Device

  1. Connect your device and select it in the top-left drop-down menu.
  2. Change Code Signing Identity to "iPhone Developer: XXX" from the drop-down menu.
  3. Select the development provisioning profile.
  4. Run the app using the flutter run command or your preferred IDE.

Step 8: Create a Release Build for iOS

  1. Open ios/Runner.xcworkspace from your Flutter project.
  2. Set the app's bundle identifier under "Identity" in the "Runner" target settings.
  3. Configure code signing settings, provisioning profiles, and development team in the "Signing & Capabilities" section.
  4. Click "Add Account" from the team dropdown and sign in with your developer account.
  5. Set the Deployment Target to match your device's iOS version.
  6. Make sure the Bundle Identifier matches your App ID.
  7. In Build Settings, select the appropriate certificates and provisioning profiles for Debug and Release builds.
  8. Build a release IPA by selecting "Generic iOS Device" and choosing "Archive" from the Products menu.

Step 9: Distribute Through TestFlight

  1. Log in to App Store Connect and create a record for your app if needed.
  2. In the sidebar, select TestFlight and add a new build.
  3. Follow the prompts to upload the build using Xcode.
  4. Provide the required information, including release notes.
  5. Submit the build for review.

Step 10: Testing with TestFlight

  1. Navigate to the TestFlight tab in your app's details on App Store Connect.
  2. Select "Internal Testing" and publish the build to testers.
  3. Add the email addresses of internal testers.

Step 11: Roll Out for Production

  1. After successful testing, return to App Store Connect.
  2. Go to the "App Store" section and create a new version.
  3. Configure the release details, including availability, pricing, and territories.
  4. Submit the app for review.
  5. Once approved, the app will be available for download on the App Store.

Feel free to adapt this guide for your specific needs and add any additional information that may be relevant to your Flutter project.