@sitepong/fastnode
v0.1.2
Published
A complete Node.js/TypeScript port of Fastlane — iOS & Android build automation, code signing, and app distribution
Maintainers
Readme
@sitepong/fastnode
A Node.js/TypeScript toolkit for iOS & Android build automation, code signing, and App Store / TestFlight distribution. Inspired by Fastlane, rewritten in TypeScript with no Ruby dependency.
Install
npm install @sitepong/fastnodeQuick start
As a library
import { AppStoreConnectClient } from "@sitepong/fastnode/client";
import { createCertificate } from "@sitepong/fastnode/cert";
const client = new AppStoreConnectClient({
keyId: process.env.APP_STORE_CONNECT_API_KEY_ID!,
issuerId: process.env.APP_STORE_CONNECT_API_KEY_ISSUER_ID!,
privateKey: process.env.APP_STORE_CONNECT_API_KEY!,
});
const cert = await createCertificate({
client,
type: "IOS_DISTRIBUTION",
outputDir: "./certs",
});
console.log("Issued cert:", cert.certificate.id);CLI
npx @sitepong/fastnode --help
npx @sitepong/fastnode cert --development
npx @sitepong/fastnode sigh --bundle-id com.example.appModules
Each module can be imported separately:
| Module | Purpose |
|---|---|
| @sitepong/fastnode/client | App Store Connect REST client (JWT) + Apple Developer Portal client (session) |
| @sitepong/fastnode/cert | Create, list, revoke signing certificates |
| @sitepong/fastnode/sigh | Create and download provisioning profiles |
| @sitepong/fastnode/match | Sync certs + profiles across machines via git/S3/local storage |
| @sitepong/fastnode/produce | Create App Store Connect apps and bundle IDs, manage capabilities |
| @sitepong/fastnode/pilot | Upload builds to TestFlight, manage beta groups, set changelog |
| @sitepong/fastnode/deliver | Upload metadata, screenshots, submit to App Review |
| @sitepong/fastnode/pem | Create APNS push notification certificates |
| @sitepong/fastnode/gym | Build and archive iOS apps via xcodebuild |
| @sitepong/fastnode/scan | Run tests via xcodebuild, parse xcresult |
| @sitepong/fastnode/snapshot | Capture localized screenshots across devices |
| @sitepong/fastnode/trainer | Parse .xcresult / .plist test output → JUnit XML |
| @sitepong/fastnode/precheck | Static-analyze App Store metadata against review rules |
| @sitepong/fastnode/frameit | Composite screenshots into device frames |
Environment
The library pulls App Store Connect credentials from:
APP_STORE_CONNECT_API_KEY_ID— the 10-character key IDAPP_STORE_CONNECT_API_KEY_ISSUER_ID— the issuer UUID (omit for individual keys)APP_STORE_CONNECT_API_KEY— the-----BEGIN PRIVATE KEY-----PEM contents
Requirements
- Node.js ≥ 20
- macOS for Xcode-driven operations (
gym,scan,snapshot,trainer) xcodebuild,security, andcodesignon PATH for code-signing flows
License
MIT
