Skip to content

fix: auto-download OpenSSL.xcframework during pod install#895

Merged
boorad merged 4 commits intomainfrom
fix/issue-882
Jan 31, 2026
Merged

fix: auto-download OpenSSL.xcframework during pod install#895
boorad merged 4 commits intomainfrom
fix/issue-882

Conversation

@boorad
Copy link
Collaborator

@boorad boorad commented Jan 31, 2026

Summary

CocoaPods skips prepare_command for :path pods, which is how React Native native modules are installed. This caused OpenSSL.xcframework to not be downloaded, resulting in 'openssl/bio.h' file not found errors.

Changes

Core Fix

  • Add Ruby code that runs during podspec evaluation to download OpenSSL if missing, before any build phases run
  • Use -sSfL curl flags for better error handling (show errors, fail on HTTP errors)

Dependency Updates

  • Update OpenSSL to 3.6.0001
  • Upgrade to Nitro Modules 0.33.2
  • Migrate from nitro-codegen to nitrogen (package renamed)
  • Add bun catalog for centralized nitro dependency versioning

CI Improvements

  • Create shared .github/actions/setup-bun composite action
  • Centralize bun version (1.3.8) in one place across all workflows
  • Bun 1.3+ required for catalog support

Test Fixes

  • Fix Buffer.isBuffer() tests (instanceof fails across module boundaries in RN)

Example App

  • Add react-native-mmkv for Nitro Modules compatibility testing

Fixes #882

CocoaPods skips prepare_command for :path pods, which is how React
Native native modules are installed. This caused OpenSSL.xcframework
to not be downloaded, resulting in 'openssl/bio.h' file not found errors.

The fix adds Ruby code that runs during podspec evaluation to download
OpenSSL if missing, before any build phases run.

Also updates OpenSSL to 3.6.0001 and adds react-native-mmkv to the
example app for testing compatibility.

Fixes #882
CocoaPods skips prepare_command for :path pods, which is how React
Native native modules are installed. This caused OpenSSL.xcframework
to not be downloaded, resulting in 'openssl/bio.h' file not found errors.

The fix adds Ruby code that runs during podspec evaluation to download
OpenSSL if missing, before any build phases run. Uses -sSfL curl flags
for better error handling (show errors, fail on HTTP errors).

Also:
- Update to OpenSSL 3.6.0001
- Upgrade to Nitro Modules 0.33.2 and nitrogen (renamed from nitro-codegen)
- Add bun catalog for centralized nitro dependency versioning
- Fix Buffer.isBuffer() tests (instanceof fails across module boundaries)
- Add react-native-mmkv to example app for compatibility testing

Fixes #882
@github-actions
Copy link
Contributor

github-actions bot commented Jan 31, 2026

🤖 End-to-End Test Results - Android

Status: ✅ Passed
Platform: Android
Run: 21549388426

📸 Final Test Screenshot

Maestro Test Results - android

Screenshot automatically captured from End-to-End tests and will expire in 30 days


This comment is automatically updated on each test run.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 31, 2026

🤖 End-to-End Test Results - iOS

Status: ✅ Passed
Platform: iOS
Run: 21549388404

📸 Final Test Screenshot

Maestro Test Results - ios

Screenshot automatically captured from End-to-End tests and will expire in 30 days


This comment is automatically updated on each test run.

Create .github/actions/setup-bun composite action to manage bun version
in one place (1.3.8). Update all workflows to use the shared action.

Bun 1.3+ is required for catalog support in package.json.
The path was pointing to root node_modules but bun hoists example
dependencies to example/node_modules.
@boorad boorad merged commit 1d64bd7 into main Jan 31, 2026
6 checks passed
@boorad boorad deleted the fix/issue-882 branch January 31, 2026 19:29
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.

🔧 Can not build with react-native-mmkv@4.0.1

1 participant