Skip to content

Conversation

@NorbertKlockiewicz
Copy link
Contributor

@NorbertKlockiewicz NorbertKlockiewicz commented Sep 30, 2025

Description

Overview

This PR refactors the iOS executorch integration from Swift Package Manager (SPM) to a prebuilt XCFramework approach, resolving dependency conflicts and simplifying the build process.

Key Changes

  1. XCFramework Integration
  • Added ExecutorchLib.xcframework with support for both iOS device (arm64) and simulator (arm64)
  • Created dedicated Xcode project for building the framework
  • Includes stub implementation of ETModel interface
  1. Podspec Simplification
  • Removed system frameworks dependencies (CoreML, Accelerate, Metal, etc.) from podspec
  • Removed sqlite3 dependency
  • Removed force-load flags for executorch libraries from podspec
  • Added vendored XCFramework reference
  1. Build Configuration
  • Updated ExecutorchLib project to reference binaries in ios/libs/executorch
  • Added build script for creating XCFramework
  1. Package Management
  • Updated .gitignore to exclude build output
  • Updated package.json to include XCFramework in distribution
  • Removed SPM package references from ExecutorchLib project

Benefits

  • Eliminates sqlite3 version conflicts
  • Cleaner dependency management
  • Better isolation of executorch dependencies

Introduces a breaking change?

  • Yes
  • No

Type of change

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Documentation update (improves or adds clarity to existing documentation)
  • Other (chores, tests, code style improvements etc.)

Tested on

  • iOS
  • Android

Testing instructions

Screenshots

Related issues

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation accordingly
  • My changes generate no new warnings

Additional notes

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this shouldnt be here, right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as abvoe

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

@NorbertKlockiewicz NorbertKlockiewicz enabled auto-merge (squash) October 1, 2025 12:35
@NorbertKlockiewicz NorbertKlockiewicz merged commit e204ff3 into main Oct 1, 2025
3 checks passed
@NorbertKlockiewicz NorbertKlockiewicz deleted the @nk/fix-sqlite-conflicts branch October 1, 2025 12:36
NorbertKlockiewicz added a commit that referenced this pull request Oct 1, 2025
This PR refactors the iOS executorch integration from Swift Package
Manager (SPM) to a prebuilt XCFramework approach, resolving dependency
conflicts and simplifying the build process.

1. XCFramework Integration
- Added ExecutorchLib.xcframework with support for both iOS device
(arm64) and simulator (arm64)
- Created dedicated Xcode project for building the framework
- Includes stub implementation of ETModel interface

2. Podspec Simplification
- Removed system frameworks dependencies (CoreML, Accelerate, Metal,
etc.) from podspec
- Removed sqlite3 dependency
- Removed force-load flags for executorch libraries from podspec
- Added vendored XCFramework reference

3. Build Configuration
- Updated ExecutorchLib project to reference binaries in
ios/libs/executorch
- Added build script for creating XCFramework

4. Package Management
- Updated .gitignore to exclude build output
- Updated package.json to include XCFramework in distribution
- Removed SPM package references from ExecutorchLib project

- Eliminates sqlite3 version conflicts
- Cleaner dependency management
- Better isolation of executorch dependencies

- [x] Yes
- [ ] No

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

- [x] iOS
- [ ] Android

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

<!-- Add screenshots here, if applicable -->

<!-- Link related issues here using #issue-number -->

- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [x] My changes generate no new warnings

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->
KnextKoder pushed a commit to Synkhiv/react-native-executorch that referenced this pull request Nov 7, 2025
…on#629)

## Description

## Overview
This PR refactors the iOS executorch integration from Swift Package
Manager (SPM) to a prebuilt XCFramework approach, resolving dependency
conflicts and simplifying the build process.

## Key Changes
1. XCFramework Integration
- Added ExecutorchLib.xcframework with support for both iOS device
(arm64) and simulator (arm64)
- Created dedicated Xcode project for building the framework
- Includes stub implementation of ETModel interface

2. Podspec Simplification
- Removed system frameworks dependencies (CoreML, Accelerate, Metal,
etc.) from podspec
- Removed sqlite3 dependency
- Removed force-load flags for executorch libraries from podspec
- Added vendored XCFramework reference

3. Build Configuration
- Updated ExecutorchLib project to reference binaries in
ios/libs/executorch
- Added build script for creating XCFramework

4. Package Management
- Updated .gitignore to exclude build output
- Updated package.json to include XCFramework in distribution
- Removed SPM package references from ExecutorchLib project

## Benefits
- Eliminates sqlite3 version conflicts
- Cleaner dependency management
- Better isolation of executorch dependencies

### Introduces a breaking change?

- [x] Yes
- [ ] No

### Type of change

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

### Tested on

- [x] iOS
- [ ] Android

### Testing instructions

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

### Screenshots

<!-- Add screenshots here, if applicable -->

### Related issues

<!-- Link related issues here using #issue-number -->

### Checklist

- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [x] My changes generate no new warnings

### Additional notes

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS app crashes when using opSqlite from react-native-rag

4 participants