# react-native-skia-apple-ios

> Skia prebuilt binaries for iOS (device + simulator)

Latest version **154.0.0** (published 2026-09-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-native-skia-apple-ios
pnpm add react-native-skia-apple-ios
yarn add react-native-skia-apple-ios
bun add react-native-skia-apple-ios
```

## Health

**Score 60/100 (C)** — status: active.

Positive: no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support; large bundle.

## Facts

| | |
|---|---|
| Version | 154.0.0 |
| Published | 2026-09-12 |
| First published | 2026-02-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 208.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 5 |
| Maintainers | wcandillon |

## Links

- npm: https://www.npmjs.com/package/react-native-skia-apple-ios
- Repository: https://github.com/wcandillon/react-native-skia-binaries
- Homepage: https://github.com/wcandillon/react-native-skia-binaries#readme
- Issues: https://github.com/wcandillon/react-native-skia-binaries/issues
- npm.io page: https://npm.io/package/react-native-skia-apple-ios

## Recent versions

- 154.0.0 (latest) — 2026-09-12
- 152.0.0 — 2026-08-05
- 150.0.0 — 2026-06-19
- 147.1.0 — 2026-04-03
- 147.0.0 — 2026-04-02
- 144.3.0 — 2026-02-28

## README

# React Native Skia Binaries

This repository generates and publishes prebuilt Skia binary packages for [React Native Skia](https://github.com/Shopify/react-native-skia).

## Overview

The binaries are downloaded from GitHub releases and bundled directly into npm packages. No postinstall scripts - the binaries are included in the package and ready to use immediately upon installation.

## Packages

### Ganesh (Standard Metal/OpenGL backend)

| Package | Platform | Description |
|---------|----------|-------------|
| `react-native-skia-android` | Android | All architectures (armeabi-v7a, arm64-v8a, x86, x86_64) |
| `react-native-skia-apple-ios` | Apple | iOS (device + simulator + Mac Catalyst) |
| `react-native-skia-apple-tvos` | Apple | tvOS (device + simulator) |
| `react-native-skia-apple-macos` | Apple | macOS (arm64 + x64) |

### Graphite (Dawn/WebGPU backend)

| Package | Platform | Description |
|---------|----------|-------------|
| `react-native-skia-graphite-android` | Android | All architectures (armeabi-v7a, arm64-v8a, x86, x86_64) |
| `react-native-skia-graphite-apple-ios` | Apple | iOS (device + simulator) |
| `react-native-skia-graphite-apple-macos` | Apple | macOS (arm64 + x64) |
| `react-native-skia-graphite-headers` | Common | Graphite headers |

## Usage

```bash
# Install a specific platform package
npm install react-native-skia-apple-ios
```

The binaries are included directly - no download happens at install time.

## Configuration

The `skia-config.json` file contains the current Skia versions and checksums:

```json
{
  "skia": {
    "version": "m144c",
    "checksums": {
      "android-armeabi-v7a": "...",
      "apple-ios-xcframeworks": "...",
      ...
    }
  },
  "skia-graphite": {
    "version": "m142b",
    "checksums": { ... }
  }
}
```

## Publishing New Versions

### Via GitHub Actions

1. Go to **Actions** > **Publish Skia Binary Packages**
2. Click **Run workflow**
3. Fill in:
   - **Skia version**: e.g., `m144c`
   - **NPM version**: (optional) derived automatically: `m144c` → `144.3.0`
   - **Graphite**: Check for Graphite packages
   - **Dry run**: Uncheck to actually publish

### Local Development

```bash
# Install dependencies
npm install

# Generate ALL packages (Ganesh + Graphite) from config file
npx tsx src/generate-packages.ts --config=skia-config.json

# Generate all Ganesh packages (npm version derived: m144c → 144.3.0)
npx tsx src/generate-packages.ts --skia-version=m144c

# Generate a specific package
npx tsx src/generate-packages.ts --skia-version=m144c --package=apple-ios

# Generate Graphite packages
npx tsx src/generate-packages.ts --skia-version=m142b --graphite

# Override npm version if needed
npx tsx src/generate-packages.ts --skia-version=m144c --npm-version=144.3.1

# Verify checksums against skia-config.json
npx tsx src/verify-checksums.ts --config=skia-config.json

# Publish (from generated package directory)
cd dist/react-native-skia-apple-ios
npm publish --access public
```

## Generated Package Structure

```
dist/
├── react-native-skia-android/
│   ├── package.json
│   ├── README.md
│   └── libs/
│       ├── armeabi-v7a/*.a
│       ├── arm64-v8a/*.a
│       ├── x86/*.a
│       └── x86_64/*.a
├── react-native-skia-apple-ios/
│   ├── package.json
│   ├── README.md
│   └── libs/
│       ├── libskia.xcframework/
│       └── ...
├── react-native-skia-graphite-android/
│   └── ...
└── ...
```

## License

MIT License - see [LICENSE](LICENSE) for details.

---
_Source: https://npm.io/package/react-native-skia-apple-ios · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
