expo-modules-autolinking 55.0.15 β†’ 55.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,14 @@
10
10
 
11
11
  ### πŸ’‘ Others
12
12
 
13
+ ## 55.0.17 β€” 2026-04-10
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
17
+ ## 55.0.16 β€” 2026-04-09
18
+
19
+ _This version does not introduce any user-facing changes._
20
+
13
21
  ## 55.0.15 β€” 2026-04-07
14
22
 
15
23
  ### πŸ› Bug fixes
@@ -32,6 +40,7 @@ _This version does not introduce any user-facing changes._
32
40
  ### πŸ› Bug fixes
33
41
 
34
42
  - [Android] Fixed build failures caused by the "=" character in pnpm virtual store paths. ([#44109](https://github.com/expo/expo/pull/44109) by [@lukmccall](https://github.com/lukmccall))
43
+ - [iOS] Fixes an issue where the modulemap is destroyed when switching between Debug and Release configurations. ([#44665](https://github.com/expo/expo/pull/44665) by [@alanjhughes](https://github.com/alanjhughes))
35
44
 
36
45
  ## 55.0.11 β€” 2026-03-18
37
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-modules-autolinking",
3
- "version": "55.0.15",
3
+ "version": "55.0.17",
4
4
  "description": "Scripts that autolink Expo modules.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -38,10 +38,10 @@
38
38
  "memfs": "^3.2.0"
39
39
  },
40
40
  "dependencies": {
41
- "@expo/require-utils": "^55.0.3",
41
+ "@expo/require-utils": "^55.0.4",
42
42
  "@expo/spawn-async": "^1.7.2",
43
43
  "chalk": "^4.1.0",
44
44
  "commander": "^7.2.0"
45
45
  },
46
- "gitHead": "f35977db4ffc6bbc2b295d65a8d74e9fd4f24ecb"
46
+ "gitHead": "ba4ff190e5abefff1a7758006bf822d14e223218"
47
47
  }
@@ -554,6 +554,11 @@ module Expo
554
554
  # 1. Creates a non-framework modulemap so <React/X.h> resolves through -isystem + VFS
555
555
  # 2. Patches framework modulemaps to remove `framework module React` (keep React_RCTAppDelegate)
556
556
  # 3. Injects -isystem and -fmodule-map-file into all pod and aggregate xcconfigs
557
+ #
558
+ # The modulemap is placed in Target Support Files/ rather than in the pod
559
+ # directory itself, because React Native's replace-rncore-version.js script
560
+ # phase deletes and re-extracts the entire React-Core-prebuilt/ directory at
561
+ # build time when switching Debug↔Release configurations.
557
562
  def configure_use_frameworks(installer)
558
563
  return unless prebuilt_react_active?
559
564
  return if linkage(installer).nil?
@@ -562,9 +567,12 @@ module Expo
562
567
  xcframework_path = File.join(react_prebuilt_dir, 'React.xcframework')
563
568
  return unless File.exist?(xcframework_path)
564
569
 
565
- create_nonframework_modulemap(react_prebuilt_dir)
570
+ target_support_dir = File.join(installer.sandbox.root, 'Target Support Files', 'React-Core-prebuilt')
571
+ FileUtils.mkdir_p(target_support_dir)
572
+
573
+ create_nonframework_modulemap(target_support_dir, installer.sandbox.root)
566
574
  patch_framework_modulemaps(xcframework_path)
567
- inject_isystem_flags(installer, react_prebuilt_dir)
575
+ inject_isystem_flags(installer, target_support_dir)
568
576
 
569
577
  Pod::UI.puts "[Expo] ".blue + "Created non-framework React modulemap for use_frameworks! compatibility"
570
578
  end
@@ -702,11 +710,12 @@ module Expo
702
710
  # ──────────────────────────────────────────────────────────────────────
703
711
 
704
712
  # Creates a non-framework modulemap so <React/X.h> resolves through -isystem + VFS.
705
- def create_nonframework_modulemap(react_prebuilt_dir)
706
- modulemap_path = File.join(react_prebuilt_dir, 'React-use-frameworks.modulemap')
713
+ def create_nonframework_modulemap(target_support_dir, pods_root)
714
+ modulemap_path = File.join(target_support_dir, 'React-use-frameworks.modulemap')
715
+ umbrella_header = File.join(pods_root, 'React-Core-prebuilt', 'React.xcframework', 'Headers', 'React_Core', 'React_Core-umbrella.h')
707
716
  modulemap_content = <<~MODULEMAP
708
717
  module React {
709
- umbrella header "React.xcframework/Headers/React_Core/React_Core-umbrella.h"
718
+ umbrella header "#{umbrella_header}"
710
719
  export *
711
720
  }
712
721
  MODULEMAP
@@ -732,10 +741,10 @@ module Expo
732
741
 
733
742
  # Injects -fmodule-map-file and -isystem into all pod and aggregate xcconfigs.
734
743
  # Module builds don't inherit -I (HEADER_SEARCH_PATHS) but DO inherit -isystem.
735
- def inject_isystem_flags(installer, react_prebuilt_dir)
736
- modulemap_flag = "-fmodule-map-file=\"${PODS_ROOT}/React-Core-prebuilt/React-use-frameworks.modulemap\""
744
+ def inject_isystem_flags(installer, target_support_dir)
745
+ modulemap_flag = "-fmodule-map-file=\"${PODS_ROOT}/Target\\ Support\\ Files/React-Core-prebuilt/React-use-frameworks.modulemap\""
737
746
  extra_isystem = "-isystem \"${PODS_ROOT}/React-Core-prebuilt/React.xcframework/Headers\""
738
- swift_modulemap = "-Xcc -fmodule-map-file=\"${PODS_ROOT}/React-Core-prebuilt/React-use-frameworks.modulemap\""
747
+ swift_modulemap = "-Xcc -fmodule-map-file=\"${PODS_ROOT}/Target\\ Support\\ Files/React-Core-prebuilt/React-use-frameworks.modulemap\""
739
748
  swift_extra_isystem = "-Xcc -isystem -Xcc \"${PODS_ROOT}/React-Core-prebuilt/React.xcframework/Headers\""
740
749
  skip_marker = 'React-use-frameworks.modulemap'
741
750