# Meteor Native

> Use when building or maintaining Meteor 3 Android/iOS apps through Cordova. Triggers on meteor add-platform, android-device, ios-device, mobile-config.js, Cordova plugins, native signing or store artifacts, and mobile hot code push compatibility. Use this skill when the task already concerns Meteor's Cordova app workflow; use meteor-debugging for an unexplained cross-layer failure and meteor-deployment for the backend. React Native/Expo, Capacitor, and native Node.js addons are separate workflows.

- Skill: `meteor/meteor-native` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add meteor/meteor-native`
- Raw SKILL.md: https://api.skillmd.com/api/skills/meteor/meteor-native/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- License: MIT
- Author: meteor (https://skillmd.com/u/meteor)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/meteor/meteor-native

---


# Meteor native apps

Turn the existing Meteor application into a reproducible Cordova build and
verify the requested device or distribution behavior. Meteor manages the web
bundle, Cordova project and platform versions; Android Studio and Xcode provide
native debugging, signing and distribution tools.

## Choose the workflow

1. Read `.meteor/release`, `.meteor/platforms`, `.meteor/cordova-plugins`,
   `.meteor/versions`, `package.json`, and `mobile-config.js` when present.
   Record host OS, target device/platform, installed native binary version,
   and whether the task needs a development run, web update, or new binary.
2. Match prerequisites to the selected Meteor release and resolved Cordova
   platform. Meteor 3.5.2 uses `cordova-lib@13.0.0`,
   `cordova-android@15.1.0`, and `cordova-ios@7.1.1`; earlier releases have
   different pins. Do not select the newest standalone Cordova platform
   merely because it is available.
3. Choose the relevant reference below. Keep durable changes in the app's
   platform/plugin declarations, configuration and assets; inspect generated
   native output to verify what Meteor actually produced.
4. Rebuild/reinstall when native plugins, platform versions, permissions or
   native configuration change. HCP can update compatible web code/assets;
   it cannot supply missing native code or change installed binary metadata.
5. Verify on the target emulator/device or inspect the requested artifact.
   Record command, versions, endpoint and observable result. A successful web
   build alone does not validate a native app or a signed store artifact.

| Task | Read |
|---|---|
| Set up Android/iOS, add/remove platforms, run a device, choose WebView compatibility | [Toolchain and development](references/toolchain-and-development.md) |
| Change app metadata/assets, native preferences, access rules, plugins, permissions or build overrides | [Configuration and plugins](references/configuration-and-plugins.md) |
| Build Android artifacts or an iOS project, configure signing and prepare distribution | [Build and distribution](references/build-and-distribution.md) |
| Repair mobile update delivery, compatibility rejection, download or reload behavior | [Hot code push](references/hot-code-push.md) |

## Persistent state and runtime boundaries

- `.meteor/local/cordova-build/` is generated by default. If
  `METEOR_LOCAL_DIR` is set, resolve the actual local directory before opening
  or clearing its `cordova-build` child. Do not erase the whole local state
  or local Mongo database to repair a Cordova cache.
- `mobile-config.js` is a build-time configuration file, not an application
  module. `App.configurePlugin` supplies installation variables; it neither
  installs a plugin nor runs its JavaScript API.
- Call native plugin APIs from client code guarded by `Meteor.isCordova`,
  inside `Meteor.startup` or after equivalent device readiness. Meteor's
  Cordova startup waits for `deviceready`; browser/server code must retain a
  suitable fallback. Startup does not grant OS permissions automatically.
- A physical device's `localhost` is the device. Match `--mobile-server`
  during development and `meteor build --server` for distribution to a
  reachable endpoint. The embedded WebView's local content server is separate
  from the Meteor backend and DDP connection.

## Neighboring workflows

| Request | Owner |
|---|---|
| Unknown crash, stuck data, or failure not yet isolated to native behavior | `meteor-debugging`, then return with the confirmed native boundary |
| Host the backend, configure Galaxy/Docker, deploy server changes, preserve the HCP client bundle | `meteor-deployment` |
| Rspack/SWC/module graph or a native npm addon such as `sharp` | `meteor-modern-build-stack` or `migrate-to-rspack` |
| OAuth provider/login behavior | `meteor-accounts`; use this skill for required Cordova plugin or native configuration |
| Explicit React Native/Expo or Capacitor app | Keep the chosen stack; this skill does not implement those integrations |

## Acceptance

Use [evaluation cases](references/eval-cases.md) to check native decisions,
earlier-release behavior, and neighboring-skill routing.

