Skip to content

[pull] main from expo:main#716

Merged
pull[bot] merged 4 commits intocode:mainfrom
expo:main
Mar 27, 2026
Merged

[pull] main from expo:main#716
pull[bot] merged 4 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Mar 27, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Ubax and others added 4 commits March 26, 2026 22:22
# Why

Header items should use the same colors as the rest of the header

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

<img height="512" alt="Screenshot_1774564958"
src="https://github.com/user-attachments/assets/83bb4931-2c45-4f3b-a669-27f2d8bfccc6"
/>


# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…#44248)

# Why

This PR is a preparation for using expo-modules-core in an XCFramework built with SPM. The main issue we're facing is that with SPM we need to split c++, swift and objective-c in separate targets, meaning that swift can reference types from objective-c, but obj-c cannot reference swift.

More info about the SPM/XCFramework project here:
https://www.notion.so/expo/SPM-for-Expo-Modules-on-iOS-2dae5b573524802597d1c28d04381409

# How

- Extract ObjC protocols (EXAppContextProtocol, EXReactDelegateProtocol, EXAppContextFactoryRegistry) to enable cross-xcframework boundaries.
- Refactor legacy module registry and native modules proxy to avoid direct Swift header imports. Restructure Fabric view and JSI headers for xcframework compatibility. Update podspecs for xcframework builds.
- Add explicit `import React` where RCT functions are used directly (tracking-transparency, camera, calendar, audio, etc.)
- Use `internal import` import for SDWebImage in expo-image to hide third-party dependency from the public module interface
- Add missing Foundation.h imports in unimodules-app-loader headers
- Restructure expo AppDelegate imports for prebuilt React compatibility
- Update Fetch module to work across xcframework boundaries

# Test Plan

Build with Bare Expo with and without React Native from source as usual. Should work (note: Xcode 26.4 issue with build from source, is not coming from this PR).

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources according to [this short guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
# Why

Build system for compiling Expo and third-party iOS packages into prebuilt xcframeworks using Swift Package Manager. Includes SPM Package.swift generation, artifact management, React VFS overlay generation, codegen integration, and a step-based pipeline executor.

# How

- Adds expo-tool for precompiling - `et prebuild`
- Adds spm.config.json build configurations for 75 packages (Expo + external). 
- Fixes pnpm module resolution for the tools package.

# Test Plan

Build XCFrameworks for all supported frameworks and verify that there are no errors
…orks (#44287)

# Why

Able to consume the built Xcode frameworks, we need to update the CocoaPods pipeline to support it. This PR does that. 

# How

Added precompiled_modules.rb that takes care of most of the auto linking with precompiled XCFrameworks.

# Test Plan

Run pod install with EXPO_USE_PRECOMPILED_MODULES=1
@pull pull bot locked and limited conversation to collaborators Mar 27, 2026
@pull pull bot added the ⤵️ pull label Mar 27, 2026
@pull pull bot merged commit 04a499f into code:main Mar 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants