Sapilon becomes publicly available on 15 November 2026: 50 days to go. The core goes open source the same day →

Your iOS app

In short

Publish to Live, open the iOS App page, enter your bundle identifier and Apple Team ID, and choose Create iOS app. Then open ios/App.xcodeproj in Xcode on a Mac, archive it and upload it to App Store Connect. Your web app keeps updating through Publish, with no new App Store release.

Your project can be an app on the App Store, under your name and with your icon, without a second codebase. Sapilon adds a small iPhone and iPad app to your project whose whole screen is your web app’s Live address. You keep building only the web app; every time you publish, the iOS app shows the change at once.

What do I get?

An ios/ folder in your project holding a native frame around your web app. It adds the things a phone does better than a web page:

  • Sign-in in the system sheet, the one iPhones use everywhere, with saved passwords and passkeys. It also makes Sign in with Google work, which Google refuses inside embedded web views.
  • Haptics: a tap you can feel when someone confirms something destructive, or a form refuses their input.
  • Links to other sites open in Safari, so a customer never gets stuck on a page with no way back.
  • An offline screen with a Try again button, instead of a blank page, when there is no network.
  • A launch screen in your app’s colour, with your icon.

The app loads your Live address, never Rehearsal or the Build Server: a customer should never land on test data or a server that has shut down.

What do I need?

  • An Apple Developer Program membership in your own name or your company’s. It costs US$99 a year, and enrolling a company takes a few days while Apple checks it. Apple does not let anyone publish an app on your behalf, so the account has to be yours.
  • A Mac with Xcode 16 or later, for now. Only Xcode can build and sign an iPhone app, and Sapilon’s servers run Linux, so Sapilon cannot build it for you yet.
  • A project that has published to Live. The app needs an address to load.

How do I create the iOS app?

  1. Publish your project to Live, if you haven’t yet.
  2. Open Go Live → Publish, and on the Live server choose Get an iOS app. (Once the app exists, it is also in the Explorer under Your Apps → iOS → iOS App.)
  3. Check what Sapilon will create: the name, the address it loads, the link scheme, the launch colour and the icon. They come from your project; to change one, edit it on its own page first (the Web Manifest page for the name and colour, the Icons page for the icon).
  4. Enter the two values only you have, and choose Create iOS app:
    • Bundle identifier: your app’s permanent id, written like a reversed web address, such as com.yourcompany.app. It cannot change after your first upload.
    • Team ID: the ten letters and digits on the Membership details page of your Apple developer account.
  5. Publish to Live once more. Creating the app adds a small file to your web app that lets the system sign-in sheet hand the sign-in back to the app. It only works once it is on your Live address. The iOS App page shows Native sign-in: Ready when it is.

How do I build it and put it on the App Store?

On your Mac:

  1. Get your project’s code by cloning its repository, and open ios/App.xcodeproj in Xcode.
  2. Choose Xcode → Settings → Accounts and sign in with your Apple developer account.
  3. Pick a simulator, or your iPhone, next to the scheme name and press Run to try the app.
  4. In App Store Connect → Apps, choose New App and use the same bundle identifier.
  5. In Xcode, choose Any iOS Device, then Product → Archive. In the Organizer that opens, choose Distribute App → App Store Connect.
  6. Try the upload with TestFlight, fill in the store listing (description, screenshots, privacy details), and submit it for review.

For each new App Store release, raise MARKETING_VERSION (and for every upload, CURRENT_PROJECT_VERSION) in ios/Config/App.xcconfig. You only need a new release when the iOS frame itself changes; changes to your web app reach the iOS app through Publish.

What might Apple’s review ask?

Apple sometimes rejects apps that look like “just a website” (App Review Guideline 4.2). It is applied unevenly, and it can happen to you. If the reviewer asks what the app does beyond your website, point to what the iPhone adds: the system sign-in sheet, haptic feedback, the offline screen, and what your app does for its customers that the website alone does not make easy. The Agent can help you draft that answer, and the store listing.

I added a custom domain. What happens to the app?

Nothing, until you move it. The app keeps loading the address it was created with, which keeps working. Once your own web address is live, the iOS App page offers Update address. Choose it, publish to Live again, then build and upload a new version of the app. The store listing and the sign-in file both follow the new address.

Can the Agent change the iOS app?

It can read and edit the Swift code in ios/App/, for small changes such as a colour or which links stay inside the app, and it will explain what to look at after you build. It cannot build, run or test the iOS app, because that needs a Mac. Anything that changes what your product does belongs in the web app, where every customer gets it, in every browser and in the app.

Last updated .

Was this page helpful?