Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion .github/workflows/microsoft-build-rntester.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ on:

jobs:
build-rntester:
name: "${{ matrix.platform }}, ${{ matrix.arch }}"
name: "${{ matrix.platform }}, ${{ matrix.arch }}, ${{ matrix.linkage }}"
runs-on: macos-26
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
platform: [macos, ios, visionos]
arch: [oldarch, newarch]
linkage: [static, dynamic]
include:
# Platform-specific properties
- platform: macos
Expand All @@ -32,6 +33,11 @@ jobs:
new_arch_enabled: '0'
- arch: newarch
new_arch_enabled: '1'
# Linkage-specific properties
- linkage: static
use_frameworks: ''
- linkage: dynamic
use_frameworks: 'dynamic'

steps:
- uses: actions/checkout@v4
Expand All @@ -51,14 +57,27 @@ jobs:

- name: Install Pods
working-directory: packages/rn-tester
# Dynamic frameworks are still a work in progress on this fork (see RCT-Folly /
# header plumbing). Run those jobs for coverage but don't let pod install / build
# failures fail the check; the real result is still visible in the step logs.
# Static builds stay strict/required.
continue-on-error: ${{ matrix.linkage == 'dynamic' }}
env:
RCT_NEW_ARCH_ENABLED: ${{ matrix.new_arch_enabled }}
USE_FRAMEWORKS: ${{ matrix.use_frameworks }}
run: |
set -eox pipefail
# USE_FRAMEWORKS is empty for static-library builds; unset it so the
# Podfile keeps its default (static libraries) instead of coercing an
# empty linkage value.
if [[ -z "$USE_FRAMEWORKS" ]]; then
unset USE_FRAMEWORKS
fi
bundle install
bundle exec pod install --verbose

- name: Build ${{ matrix.scheme }}
continue-on-error: ${{ matrix.linkage == 'dynamic' }} # [macOS] Dynamic frameworks WIP; keep the check green while building for coverage
env:
USE_CCACHE: 0
run: |
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ let reactCore = RNTarget(
"ReactCommon/react/runtime/platform/ios", // explicit header search path to break circular dependency. RCTHost imports `RCTDefines.h` in ReactCore, ReacCore needs to import RCTHost
],
linkedFrameworks: ["CoreServices"],
excludedPaths: ["Fabric", "Tests", "Resources", "Runtime/RCTJscInstanceFactory.mm", "I18n/strings", "CxxBridge/JSCExecutorFactory.mm", "CoreModules", "RCTUIKit"], // [macOS]
excludedPaths: ["Fabric", "Tests", "Resources", "Runtime/RCTJscInstanceFactory.mm", "I18n/strings", "CxxBridge/JSCExecutorFactory.mm", "CoreModules", "RCTUIKit", "RCTUIKitForwarding"], // [macOS]
dependencies: [.reactNativeDependencies, .reactCxxReact, .reactPerfLogger, .jsi, .reactJsiExecutor, .reactUtils, .reactFeatureFlags, .reactRuntimeScheduler, .yoga, .reactJsInspector, .reactJsiTooling, .rctDeprecation, .reactCoreRCTWebsocket, .reactRCTImage, .reactTurboModuleCore, .reactRCTText, .reactRCTBlob, .reactRCTAnimation, .reactRCTNetwork, .reactFabric, .hermesPrebuilt, .reactRCTUIKit], // [macOS]
sources: [".", "Runtime/RCTHermesInstanceFactory.mm"]
)
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React-RCTUIKit.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Pod::Spec.new do |s|
["React/RCTUIKit/*.{h,m}"],
"React/RCTUIKit/*.h")
s.public_header_files = "React/RCTUIKit/*.h"
s.header_dir = "React"
s.header_dir = "React_RCTUIKit" # [macOS] Own namespace so <React_RCTUIKit/...> resolves consistently (static + frameworks); React-Core vends <React/...> forwarding aliases
s.module_name = "React_RCTUIKit"
s.pod_target_xcconfig = {
"DEFINES_MODULE" => "YES",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
@compatibility_alias RCTUIActivityIndicatorView UIActivityIndicatorView;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUIActivityIndicatorView.h>
#import <React_RCTUIKit/RCTUIActivityIndicatorView.h>

#import <CoreImage/CIFilter.h>
#import <CoreImage/CIVector.h>
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIGraphics.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUIGraphics.h>
#import <React_RCTUIKit/RCTUIGraphics.h>

#import <objc/runtime.h>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIImage.h>
#import <React_RCTUIKit/RCTUIImage.h>

#if !TARGET_OS_OSX

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

#if TARGET_OS_OSX

#import <React/RCTUIGraphicsImageRenderer.h>
#import <React/RCTUIImage.h>
#import <React_RCTUIKit/RCTUIGraphicsImageRenderer.h>
#import <React_RCTUIKit/RCTUIImage.h>

@implementation RCTUIGraphicsImageRendererFormat

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIImage.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
#import <UIKit/UIKit.h>
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIImage.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUIImage.h>
#import <React_RCTUIKit/RCTUIImage.h>

// UIImage

Expand Down
4 changes: 2 additions & 2 deletions packages/react-native/React/RCTUIKit/RCTUIImageView.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React/RCTUIImage.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIImage.h>

#if !TARGET_OS_OSX
@compatibility_alias RCTUIImageView UIImageView;
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIImageView.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUIImageView.h>
#import <React_RCTUIKit/RCTUIImageView.h>

#import <CoreImage/CIFilter.h>

Expand Down
30 changes: 15 additions & 15 deletions packages/react-native/React/RCTUIKit/RCTUIKit.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@
// [macOS]
// Umbrella header for RCTUIKit — the UIKit/AppKit compatibility layer.

#import <React/RCTUIKitCompat.h>
#import <React/RCTUIAccessibilityTraits.h>
#import <React/RCTUIGeometry.h>
#import <React/RCTUIGraphics.h>
#import <React/RCTUIImage.h>
#import <React/RCTUIView.h>
#import <React/RCTUIScrollView.h>
#import <React/RCTUISlider.h>
#import <React/RCTUILabel.h>
#import <React/RCTUISwitch.h>
#import <React/RCTUIActivityIndicatorView.h>
#import <React/RCTUITouch.h>
#import <React/RCTUIImageView.h>
#import <React/RCTUIGraphicsImageRenderer.h>
#import <React/RCTPlatformDisplayLink.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIAccessibilityTraits.h>
#import <React_RCTUIKit/RCTUIGeometry.h>
#import <React_RCTUIKit/RCTUIGraphics.h>
#import <React_RCTUIKit/RCTUIImage.h>
#import <React_RCTUIKit/RCTUIView.h>
#import <React_RCTUIKit/RCTUIScrollView.h>
#import <React_RCTUIKit/RCTUISlider.h>
#import <React_RCTUIKit/RCTUILabel.h>
#import <React_RCTUIKit/RCTUISwitch.h>
#import <React_RCTUIKit/RCTUIActivityIndicatorView.h>
#import <React_RCTUIKit/RCTUITouch.h>
#import <React_RCTUIKit/RCTUIImageView.h>
#import <React_RCTUIKit/RCTUIGraphicsImageRenderer.h>
#import <React_RCTUIKit/RCTPlatformDisplayLink.h>
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUILabel.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
@compatibility_alias RCTUILabel UILabel;
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUILabel.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUILabel.h>
#import <React_RCTUIKit/RCTUILabel.h>

@implementation RCTUILabel {}

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIScrollView.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIScrollView.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUIScrollView.h>
#import <React_RCTUIKit/RCTUIScrollView.h>

// RCTUIScrollView

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUISlider.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
@compatibility_alias RCTUISlider UISlider;
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUISlider.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUISlider.h>
#import <React_RCTUIKit/RCTUISlider.h>

@implementation RCTUISlider {}

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUISwitch.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
@compatibility_alias RCTUISwitch UISwitch;
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUISwitch.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

#if TARGET_OS_OSX

#import <React/RCTUISwitch.h>
#import <React_RCTUIKit/RCTUISwitch.h>

@implementation RCTUISwitch

Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIView.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

#include <TargetConditionals.h>

#import <React/RCTUIKitCompat.h>
#import <React_RCTUIKit/RCTUIKitCompat.h>

#if !TARGET_OS_OSX
#import <UIKit/UIKit.h>
Expand Down
2 changes: 1 addition & 1 deletion packages/react-native/React/RCTUIKit/RCTUIView.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#if TARGET_OS_OSX

#import <QuartzCore/QuartzCore.h>
#import <React/RCTUIView.h>
#import <React_RCTUIKit/RCTUIView.h>

// UIView

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTPlatformDisplayLink.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTPlatformDisplayLink.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIAccessibilityTraits.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIAccessibilityTraits.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIActivityIndicatorView.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIActivityIndicatorView.h>
12 changes: 12 additions & 0 deletions packages/react-native/React/RCTUIKitForwarding/RCTUIGeometry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIGeometry.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIGeometry.h>
12 changes: 12 additions & 0 deletions packages/react-native/React/RCTUIKitForwarding/RCTUIGraphics.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIGraphics.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIGraphics.h>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIGraphicsImageRenderer.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIGraphicsImageRenderer.h>
12 changes: 12 additions & 0 deletions packages/react-native/React/RCTUIKitForwarding/RCTUIImage.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIImage.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIImage.h>
12 changes: 12 additions & 0 deletions packages/react-native/React/RCTUIKitForwarding/RCTUIImageView.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (c) Microsoft Corporation.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

// [macOS] Forwarding header: RCTUIKit lives in the React-RCTUIKit pod (module
// React_RCTUIKit), but is imported throughout as <React/RCTUIImageView.h>. This alias keeps
// those imports working under use_frameworks! by re-exporting the (modular)
// React_RCTUIKit header. Under static libraries it resolves the same way.
#import <React_RCTUIKit/RCTUIImageView.h>
Loading
Loading