Capacitor iOS Android project from website: what's in the download, file by file
From a published site, Anticode can make a Capacitor project: one zip with an Xcode project, an Android Studio project, icons and splash screens drawn from the site's look, and a small script that adds a share button and booking reminders. The app opens your live site full screen. Anticode never contacts Apple or Google, creates accounts or holds signing keys; that part is yours.
Getting the zip
In the builder's console, open App stores. The section needs a published site, because the app opens its live address. Under Your app in the stores, set two things before downloading:
- Name under the icon
- Up to 30 characters. It starts as the short name from the site's install manifest.
- App ID
- A reversed domain you own, such as
com.yourbusiness.app, lowercase, with no Java keywords as parts so it's valid as both an iOS bundle ID and an Android package. It defaults todev.anticode.<site>, and the checklist warns until you change it, because the stores never let you change it later.
Download project saves <site>-app.zip. Making the icons takes real computing time, so downloads are limited to ten per ten minutes per account.
What's inside
| Path | What it is |
|---|---|
capacitor.config.json | App ID, app name, webDir set to www, server.url set to your live site, and server.errorPath pointing at the offline screen |
package.json | Capacitor core, iOS, Android and CLI at version 8.5.3 or later, plus the official Share and Local Notifications plugins |
www/ | index.html, offline.html in your colours, icon.png, and app-features.js |
ios/ | Capacitor's own iOS template (Swift Package Manager), edited the way cap add ios would |
android/ | Capacitor's Gradle template, edited the way cap add android would |
store/ | A 1024×1024 App Store icon, a 512×512 Play icon and a 1024×500 Play feature graphic |
README.md, STORE-CHECKLIST.md | How to open, run, sign and upload; and the store checklist as it was when you downloaded |
Files Capacitor generates for itself are left out, as in a fresh Capacitor repository. So the first commands are always npm install and npx cap sync, which links the native projects and copies www/ and the config into them. Run npx cap sync again after changing either.
Icons and splash screens from your site
Everything visual is drawn from the published page: its background, accent colour and initials. On iOS that means a 1024×1024 app icon with no transparency (App Store Connect rejects icons with an alpha channel) and a launch image of the background with the rounded icon. On Android it's launcher icons at five densities, round and adaptive versions with the background set to your accent, and a splash made from the background colour with a centred icon, including the setting Android 12 and later use.
The two native features
Your published site runs no scripts, so nothing on it can call a native plugin. The app adds one script of its own, www/app-features.js, injected into the site's pages by the native code at start-up and limited to your site's origin:
- Share. A round button in the corner, in your accent colour, opens the system share sheet with the page's title and address. It hides while someone is typing in a field.
- Booking reminders. After a visitor sends a booking request, and if the slot is more than an hour away, the thank-you page offers "Remind me an hour before". Notification permission is asked for then, in context, not at launch, and the reminder stays on the phone.
Either can be switched off with the constants at the top of app-features.js, followed by npx cap sync.
Live site or bundled site
Because the app loads your live address through server.url, publishing a change in Anticode updates the app without a store release, and forms and pages work as they do on the web. Without a connection, the app shows offline.html with a Try again link. Be aware that Capacitor's configuration reference describes server.url as intended for live-reload servers and says it is not intended for production. Many store apps load a remote address anyway, and the project's README says so plainly; if you'd rather ship the site inside the app, build it into www/ and remove server.url.
Limits
- No submissions, accounts or signing. Apple's and Google's developer accounts, certificates and keys are yours.
- No push notifications. They need your own Apple and Firebase credentials.
- No offline content beyond the offline screen, and no screenshots; take those in a simulator or emulator.
- Review risk. The checklist flags this every time: Apple often rejects apps that are mainly a website.
- A Mac for iOS. Xcode runs on macOS; the checklist notes a cloud Mac or a build service also works.
Next steps: opening the iOS project in Xcode, building the Android bundle in Android Studio, and the App Store requirements. If a store app isn't essential, the site already installs as an app from the browser.
Questions people ask
Do I need to know Swift or Kotlin?
Not to build and submit it. You'll use Xcode and Android Studio's menus, not write native code, unless you add features.
Does the app update when I change my site?
Yes, for content: it loads the live site. Changes to the app's name, icon or ID need a new build and store release.
Can I change the app ID later?
Not once it's in a store. Set it to a domain you control before you download.
Sources
- Capacitor Docs: Configuration, checked