Package Exports
- @sitepong/fastnode
- @sitepong/fastnode/actions
- @sitepong/fastnode/cert
- @sitepong/fastnode/client
- @sitepong/fastnode/core
- @sitepong/fastnode/deliver
- @sitepong/fastnode/frameit
- @sitepong/fastnode/gym
- @sitepong/fastnode/lane
- @sitepong/fastnode/match
- @sitepong/fastnode/pem
- @sitepong/fastnode/pilot
- @sitepong/fastnode/precheck
- @sitepong/fastnode/produce
- @sitepong/fastnode/scan
- @sitepong/fastnode/sigh
- @sitepong/fastnode/snapshot
- @sitepong/fastnode/trainer
- @sitepong/fastnode/xcode
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