Moropo
RoadmapTerms
  • Welcome to Moropo
  • Quick Start
  • Uploading your app
    • Producing an Android Build
    • Producing an iOS Build
    • Uploading Your Build To Moropo
  • Creating Tests
    • Using the Test Creator
    • Test Configuration
    • Test Step Commands
      • addMedia
      • assertNotVisible
      • assertTrue
      • assertVisible
      • back (Android only)
      • clearKeychain (iOS Only)
      • clearState
      • copyTextFrom
      • doubleTapOn
      • eraseText
      • evalScript
      • extendedWaitUntil
      • hideKeyboard
      • inputRandomEmail
      • inputRandomNumber
      • inputRandomPersonName
      • inputRandomText
      • inputText
      • launchApp
      • longPressOn
      • openLink
      • pasteText
      • pressKey
      • repeat
      • runFlow
      • runScript
      • scroll
      • scrollUntilVisible
      • setLocation
      • startRecording
      • stopApp
      • stopRecording
      • swipe
      • takeScreenshot
      • tapOn
      • travel
      • waitForAnimationToEnd
    • Test Step Selectors
    • Importing From Maestro
    • Environment Variables
      • ${BUNDLEID}
      • ${EXPORELEASECHANNEL}
      • ${MOROPO_TEST_EMAIL}
      • ${MOROPO_EMAIL_URL}
    • Advanced Use Cases
      • JavaScript
      • Conditionals
      • Network Connection
      • Drag and Drop
  • Running Tests
    • Manually Trigger a Test Run
    • Scheduling a Test Run
    • Tags
    • Supported Devices
    • Test Execution Limits
    • Flakiness Tolerance & Retries
  • CI Integration
    • Initial CI Setup In Moropo
    • GitHub Action
    • Moropo API
      • Branches
      • Builds
      • Test Runs
      • Tests
  • Test Results
    • Results Explorer
    • Slack Reporting
    • Email Reporting
  • App Frameworks
    • Flutter
    • React Native
  • Guides
    • React Native Expo
    • Access Emails During A Test Flow
    • Git workflow using Moropo API
  • Infrastructure
    • IP Addresses
  • Security
    • Services Infrastructure
    • Security Best Practices
Powered by GitBook
On this page
  • Which build type should I use?
  • Using XCode Command Line to produce a .app
  • Using XCode UI to produce a .app
  • [React Native] Using Expo EAS to produce a .app
  • Using Flutter to produce a .app

Was this helpful?

Edit on GitHub
  1. Uploading your app

Producing an iOS Build

Last updated 1 year ago

Was this helpful?

Moropo supports running tests on iOS using a .app simulator build file.

Please note: real iOS device builds with the file extension .ipa are currently not supported.

Important: ensure your zip your .app

Because of the way that some operating systems handle .app files, it's essential that you zip your build before uploading it to Moropo.

The file you upload will look like this: myapp.app.zip How to zip on , .

Which build type should I use?

You can use any backend environment so long as your build target is simulator.

Many Moropo users configure different test setups for different build types. For example:

  • a simulator build using your Dev Environment that runs a regression suite on each pull request for a single device

  • a simulator build using your Staging Environment that runs a full test suite before each production release across a wide range of devices

Using XCode Command Line to produce a .app

If you're comfortable with the terminal and have a natively-built iOS app, you can use xcrun to produce your build file.

For example, to build an app called "Classy Mall":

xcrun xcodebuild -scheme 'Classy Mall' \
-project 'Class Mall.xcodeproj' \
-sdk 'iphonesimulator' \
-configuration Debug \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath \
build

Once successful, your .app simulator build will be found in the ./build folder.

Using XCode UI to produce a .app

  1. Launch XCode.

  2. Open your project.

  3. Click on the Product menu in the top bar, then select Build.

[React Native] Using Expo EAS to produce a .app

Ensure your eas.config includes the correct setting:

{
  "build": {
    "myProfile": {
      "ios": {
        "simulator": true
      }
    }
  }  
}    

Run EAS via your terminal to trigger the build:

eas build -p ios --profile myProfile

Using Flutter to produce a .app

If your app is built using Flutter, you can use the flutter command line inside your terminal.

To produce an iOS simulator build, run flutter build ios --debug --simulator

Your .app will appear in the ./build/ios/iphonesimulator/ folder.

If you prefer a user interface, you can use to produce your build file:

Set your target to simulator.

Wait for your build to complete.

Click on the Product menu in the top bar, then select Show Build Folder in Finder to open the file system on the newly exported .app file.

If your app is built using React Native, you can use to build your app.

Note: EAS allows a .app to be produced using various config options; read the .

MacOS
Windows
XCode
Expo Application Services
official docs