Files

3.7 KiB

iOS Build and Release Guide - TorqueVaultKMP

This document provides step-by-step instructions to set up the environment and release the iOS application from a Kotlin Multiplatform (KMP) project to the App Store.

1. Environment Setup on macOS

Setup JDK 17

The project requires JDK 17 to run Gradle tasks and build the iOS framework.

  1. Check current Java version:

    java -version
    

    If it returns openjdk version "xx.x.x", you can skip to Install Xcode.

  2. Install via Homebrew (if not installed):

    brew install openjdk@17
    
  3. Configure Environment Variables: Run the following commands to link the JDK and update your .zshrc:

    sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
    echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
    echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
    source ~/.zshrc
    

Setup Xcode

  1. Check if Xcode is installed: Ensure you have the latest version of Xcode from the App Store.

  2. Check Command Line Tools:

    xcode-select -p
    

    If it returns a path, tools are installed. Otherwise, run: xcode-select --install.

2. Xcode Project Configuration

  1. Open the Project: Open /iosApp/iosApp.xcodeproj in Xcode.

  2. Setup Signing & Capabilities:

    • Select the iosApp project in the Project Navigator.
    • Go to the Signing & Capabilities tab.
    • Select your Team (Apple Developer Account).
    • Verify the Bundle Identifier (must match the ID registered in App Store Connect, e.g., com.digitoolsolutions.app.torquevaultkmp).
  3. Update Version and Build:

    • In the General tab, update:
      • Version: e.g., 1.0.2 (Should match versionName in composeApp/build.gradle.kts).
      • Build: e.g., 2 (Should match versionCode in composeApp/build.gradle.kts and must be incremented for each upload).

3. Build and Upload Process

Step 1: Clean Project

Before building the release version, perform a clean directly in Xcode to avoid cache issues:

  • Go to Product -> Clean Build Folder (or press Shift + Command + K).
  • Note: This will also trigger a clean for the Kotlin framework if configured in the build script.

Step 2: Create Archive in Xcode

  1. In Xcode, select the build target as Any iOS Device (arm64) from the toolbar.
  2. Go to Product -> Archive.
  3. Xcode will start building. The Kotlin framework (ComposeApp) will be automatically compiled via the Gradle build phase script.

Step 3: Upload to App Store Connect

  1. Once the Archive is complete, the Organizer window will appear.
  2. Select the latest build and click Distribute App.
  3. Choose App Store Connect and then Upload.
  4. Follow the prompts (Validate, Re-sign).
  5. Wait for the success notification.

4. App Store Connect Management

  1. Log in to App Store Connect.
  2. Select your app TorqueVault.
  3. Check the build status in the TestFlight tab to ensure it has finished processing.
  4. When ready, go back to the App Store tab, select the build, and click Submit for Review.

Important Notes

  • Framework Name: The main framework is named ComposeApp. If you change baseName in build.gradle.kts, you must update the Xcode configuration accordingly.
  • Permissions: Ensure all required permissions (Bluetooth, Camera, etc.) are declared in Info.plist.
  • Dependencies: If the project uses native libraries via CocoaPods or Swift Package Manager, ensure they are correctly installed before building.