Native Apple target support for GeaStack.
This repo contains the packages and target templates that let Gea applications run as native Apple apps instead of browser views. The current focus is iOS and macOS application shells, generated Apple SDK bindings, and experimental native JSX/SwiftUI helpers.
| Path | Purpose |
|---|---|
packages/geastack-apple |
Generated Apple framework type declarations and runtime module stubs for Foundation, UIKit, AppKit, Metal, MapKit, AVFoundation, and related SDKs. |
packages/geajs-apple-swiftui |
Optional JSX-to-SwiftUI source helpers for Apple-native experiments. |
packages/geatsc-plugin-apple-native |
geatsc plugin metadata for Apple-native bindings. |
packages/geastack-apple/targets/ios |
UIKit target template, Xcode project generator, simulator/device build script, and iOS tests. |
packages/geastack-apple/targets/macos |
Cocoa/AppKit target template, generated resident-app registry, and macOS build script. |
The build scripts run in the directory of the app you are building, which is
where npm installed this package. From an app that depends on @geastack/apple:
npx gea build --target ios # or: node_modules/@geastack/apple/targets/ios/build-ios.sh <app-id> simulator
npx gea run --target ios # build, then install and launch on an iPhone simulatorBuild a signed device app:
GEA_IOS_DEVELOPMENT_TEAM=ABCDE12345 npx gea run --target ios --mode deviceBuild a macOS app:
npx gea build --target macos # or: node_modules/@geastack/apple/targets/macos/build-macos.sh <app-id>
open dist/macos/<app-id>/<AppName>.appBuild the Apple TypeScript helper packages from their package folders:
npm run build
npm run typecheck- Xcode with iOS and macOS SDKs.
- Xcode command line tools.
- An installed iOS Simulator runtime for simulator runs.
- A configured Apple development team for signed device runs.
- The rest of the stack comes from npm: an app that depends on
@geastack/applegets@geastack/core,@geastack/compilerand the other siblings installed alongside it, and the build scripts resolve them there.
- packages/geastack-apple/targets/ios/README.md: iOS simulator and device build details.
- packages/geastack-apple/targets/macos/README.md: macOS renderer and target architecture.
Apple targets consume compiled Gea apps and map Gea primitives onto native platform controls where possible. This repo is the Apple platform adapter layer. It owns native shells, generated SDK binding surfaces, and Apple-specific target build scripts.
Apache-2.0 (see LICENSE). You can ship closed-source products
built on it. The only GeaStack code under a different license is
the embedded board support (targets and @geastack/chips, GPL-3.0-only):
shipping closed-source firmware through those needs a commercial license.
Contact contact@geastack.com for commercial terms, support and hosted builds.
- Do not hand-edit generated Xcode projects under target build directories. Change the generator scripts instead.
- Keep Apple SDK binding packages source-compatible with the
geatscplugin that consumes their metadata. - Keep smoke apps small. They exist to prove renderer and event plumbing before a generated Gea app is available.
- When adding target behavior, update the target README in the same change.