Installing your iOS app

Run your Floot app on the iOS Simulator or a real iPhone, and publish it to the App Store.

Floot can convert your project into a native iOS app. Here is how to get it running on your iPhone or the simulator.

This page covers the do-it-yourself route: download the project zip from floot.com and build it in Xcode on your own Mac. Your assistant cannot download the zip for you. Publishing through Floot needs neither the zip nor Xcode: connect your Apple account under App stores on the Publish screen, and Floot uploads each build to TestFlight — see Publish to TestFlight and Google Play.

Rejected over a permission string?

You do not need Xcode for that. Ask your AI assistant for the ios-info-plist guide — once your app has had one iOS publish, it can edit static/__dev/native/ios-info.plist in your project directly, and the change ships on your next publish.

Prerequisites (for building it yourself)

  • A Mac running macOS
  • Xcode installed — free from the Mac App Store

Getting your iOS app

  1. 1

    Build the mobile apps

    1. Open your project on floot.com and click the Publish button
    2. Switch on Publish mobile app
    3. Click Publish, or Publish update if the app is already live. Wait a few minutes for the build to finish
  2. 2

    Download the mobile project

    1. On the Publish screen, find the Last build card
    2. Next to Project zip, click Download. The card only holds your latest build — the next app build replaces it, even if that build fails. A build's files can be downloaded for 30 days
    3. Unzip it — a single archive holds both the ios/ and the android/ project
  3. 3

    Install Node.js dependencies

    Install Node.js if you do not have it, then run this in the unzipped folder:

    npm install -g pnpm@10
    pnpm install

    Use pnpm, not npm or yarn. The native projects in the zip point at pnpm's folder layout (paths under node_modules/.pnpm/…), and only pnpm install creates those folders. pnpm also installs exactly the versions in the zip's pnpm-lock.yaml.

    Do not run npx cap sync or npx cap copy. Your built web app is already inside the ios/ and android/ projects, and the zip does not include the dist folder those commands copy from.

  4. 4

    Install Homebrew

    Skip this if you already have it.

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  5. 5

    Install CocoaPods

    brew install cocoapods
  6. 6

    Install the native dependencies

    cd ios/App
    pod install --repo-update
  7. 7

    Open the project in Xcode

    1. Navigate to the unzipped folder
    2. Go to ios/App
    3. Double-click App.xcworkspace to open it in Xcode

    Open the workspace, not the project

    App.xcworkspace is the one you want — App.xcodeproj will not have the CocoaPods dependencies.

    Building with Xcode 27

    Apple requires apps built with the iOS 27 SDK to use its scene-based app lifecycle, or they close at launch. Projects from app builds made since October 24, 2026 use it. If your download is older, build the mobile apps again and download the new project. Floot's own iOS builds use Xcode 27.1 with the iOS 27 SDK.

Running in the iOS Simulator

  1. At the top of Xcode, find the device selector dropdown next to the app name
  2. Select a simulator device (for example, "iPhone 17 Pro")
  3. Click the ▶ Play button, or press Cmd + R, to build and run
  4. The simulator launches with your app running

Installing on a real iPhone

  1. Connect your iPhone to your Mac via USB
  2. Select your iPhone from the device dropdown in Xcode
  3. Configure code signing — this requires an Apple Developer account
  4. Click ▶ Play to install and run on your device

After you change your app and publish again, download the project again and click ▶ Play to refresh the installed app.

Troubleshooting

pod install can't find a path under node_modules/.pnpm
The dependencies were installed with npm or yarn. Delete the node_modules folder and any package-lock.json or yarn.lock, run pnpm install in the unzipped folder, then run pod install --repo-update in ios/App again.
pnpm install stops with ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION
Newer pnpm versions refuse packages published in the last day. Install pnpm 10 as shown above (npm install -g pnpm@10), or wait a day and run pnpm install again.
"No provisioning profiles found"
This happens when running on a physical device. Set up code signing in Xcode under Signing & Capabilities.
"Build failed" errors
Clean the build folder — Product → Clean Build Folder, or Cmd + Shift + K — then build again.
Simulator not appearing
Make sure iOS simulators are installed. In Xcode, go to Settings → Components to download them.

Publishing to the App Store

  1. 1

    Create an Apple Developer account

    Enroll in the Apple Developer Program ($99 per year).

  2. 2

    Confirm the app installs on your iPhone

    Follow the steps above first — if it will not install on your own device, it will not pass review either.

  3. 3

    Push notifications, if you use them

    There is nothing to add in Xcode. Native push is set up when you publish with your Apple account connected — see Native app features — and a project built that way already carries the push entitlement.

  4. 4

    Upload to App Store Connect

    Go to Product → Archive, then click Distribute app. Head to appstoreconnect.apple.com and fill in the required information to submit for review.

For full detail, see Apple's publishing guide.

Shipping an update

  1. Make your changes
  2. On the Publish screen, switch on Publish mobile app, raise Version for each release you submit (for example 1.0.0 → 1.1.0), and publish
  3. Download the updated project (same steps as the initial setup)
  4. Open it in Xcode, then archive and submit as above

Set the version on the Publish screen, not in Xcode

Floot writes Version and Build into every build it makes. Version comes from the Version row, which appears on the Publish screen once Publish mobile app is on (1.0.0 until you change it). Build is a counter that goes up by one with every app build — failed ones included — so it always rises. Changes made in Xcode are thrown away by the next download.

Review and release are yours

You need your own Apple Developer account to publish, and Apple handles any review or publishing support.