# Ios Build & Release

### Conditions

* Before starting the build and release process, ensure the following: \
  Apple Developer account for creating certificates and provisioning profiles.\
  App Store Connect access to upload your app.<br>

1. #### **Prepare the App for Release**

   1. Update Version & Build Number
      * Open your project in Xcode.
      * In the General tab of your app's target, update the version and build number:
      * Version: This should reflect your app’s public release version (e.g., 1.0.0).
      * Build: Increment this number with each build (e.g., 1, 2, etc.).<br>

   2. Set App Icon and Splash Screens

      * Ensure the app icon and launch screens are properly configured for all iOS device sizes.

   3. Update Info.plist
      * Review your Info.plist file to make sure all necessary permissions (e.g., camera, location) are included and set correctly.<br>

2. #### **Set Up Your iOS Distribution Certificate**

   1. Create Distribution Certificate
      * Go to the Apple Developer Portal.<https://developer.apple.com/>
      * Navigate to Certificates, Identifiers & Profiles and create a new iOS Distribution Certificate.
      * Download the certificate and install it on your Mac.<br>
   2. Create App Store Provisioning Profile
      * Still in the Certificates, Identifiers & Profiles section, create a new App Store Distribution Provisioning Profile.
      * Link the profile to your app’s App ID and Distribution Certificate.

3. **Set Up App Store Connect**<br>
   1. Create or Update App Record
      * Log into App Store Connect.
      * If this is a new app, click My Apps > + to create a new app. Fill in the necessary metadata (app name, description, keywords, etc.).
      * If updating an existing app, select the app and navigate to App Information to update details.<br>
   2. Prepare App Store Metadata
      * Add app description, keywords, screenshots, and any other required metadata.<br>

4. **Archive the App in Xcode**<br>
   1. Select Device for Archive
      * In Xcode, ensure the target device is set to Generic iOS Device or connect a physical iPhone/iPad.<br>
   2. Build the Archive
      * In Xcode, navigate to the menu and select Product > Archive.
      * This will compile the app and prepare it for distribution.<br>
   3. Open Organizer
      * After the archive process completes, the Organizer window will appear. From here, you can review and manage your app's builds.<br>

5. **Upload the App to App Store Connect**<br>
   1. Upload via Xcode
   * In the Organizer window, select the archive you just created and click Distribute App.
   * Choose App Store Connect as the distribution method.
   * Click Upload and follow the prompts to select the correct signing identity and provisioning profile.
   * Xcode will validate and upload the build to App Store Connect.\ <br>

6. **Submit App for Review**<br>
   1. Log in to App Store Connect
      * Go to My Apps in App Store Connect.
      * Select your app and navigate to the App Store section.<br>
   2. Select Build and Submit for Review
      * Under App Store > Versions, select the build you just uploaded.
      * Add Release Notes to describe the changes or new features in this version.<br>
   3. Wait for Review
      * Apple’s review process can take several days. You will be notified when your app has been approved.<br>

7. **Post-Release Steps**<br>
   1. Monitor App Performance
      * Once your app is live, monitor its performance in App Store Connect using App Analytics and Crash Reports.
      * Check user feedback and ratings in the App Store.<br>
   2. Bug Fixes and Updates
      * If needed, address user feedback or app crashes by releasing updates. Make sure to update the version and build numbers as you incrementally release new versions.

{% hint style="info" %}

### <mark style="color:blue;">Additional Tips</mark>

{% endhint %}

TestFlight: Before submitting the app to the App Store, you can distribute it to testers using TestFlight for feedback.Automate with Fastlane: If you need to automate your iOS build and release process, consider using Fastlane for continuous integration and deployment.

<br>
