expo-modules-autolinking 56.0.6 → 56.0.7
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
|
+
## 56.0.7 — 2026-05-15
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [iOS] Fixed `pod install` failing with `bad component (expected absolute path component)` for precompiled Expo modules when the project lives under a path containing non-ASCII characters (e.g. emoji). ([#45779](https://github.com/expo/expo/pull/45779) by [@tsapeta](https://github.com/tsapeta))
|
|
18
|
+
- [iOS] Cache prebuilt module status lookups to reduce repeated `File.exist?` calls during `pod install`. ([#45742](https://github.com/expo/expo/pull/45742) by [@chrfalch](https://github.com/chrfalch))
|
|
19
|
+
- [iOS] Wire the macro plugin flag into `ExpoModulesCore`'s own xcconfig so SourceKit can resolve `#externalMacro` references in core source files. ([#45778](https://github.com/expo/expo/pull/45778) by [@tsapeta](https://github.com/tsapeta))
|
|
20
|
+
|
|
13
21
|
## 56.0.6 — 2026-05-13
|
|
14
22
|
|
|
15
23
|
_This version does not introduce any user-facing changes._
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-modules-autolinking",
|
|
3
|
-
"version": "56.0.
|
|
3
|
+
"version": "56.0.7",
|
|
4
4
|
"description": "Scripts that autolink Expo modules.",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"expo-module-scripts": "56.0.2"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@expo/require-utils": "^56.1.
|
|
47
|
+
"@expo/require-utils": "^56.1.1",
|
|
48
48
|
"@expo/spawn-async": "^1.7.2",
|
|
49
49
|
"chalk": "^4.1.0",
|
|
50
50
|
"commander": "^7.2.0"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "f26be3dd9396bf7c399a1d607865d0fabdbc0d64",
|
|
53
53
|
"scripts": {
|
|
54
54
|
"build": "expo-module build",
|
|
55
55
|
"clean": "expo-module clean",
|
|
@@ -80,6 +80,7 @@ module Expo
|
|
|
80
80
|
@warned_no_prebuilt_react = false
|
|
81
81
|
@target_platform = nil
|
|
82
82
|
@xcframework_slice_cache = nil
|
|
83
|
+
@status_cache = {} # Hash: pod_name -> resolve_prebuilt_status result
|
|
83
84
|
|
|
84
85
|
class << self
|
|
85
86
|
# Returns the build flavor (debug/release) for precompiled modules.
|
|
@@ -124,6 +125,7 @@ module Expo
|
|
|
124
125
|
|
|
125
126
|
def build_from_source=(patterns)
|
|
126
127
|
@build_from_source_patterns = (patterns || []).map { |p| Regexp.new("^#{p}$") }
|
|
128
|
+
@status_cache = {}
|
|
127
129
|
end
|
|
128
130
|
|
|
129
131
|
def target_platform=(platform)
|
|
@@ -135,6 +137,7 @@ module Expo
|
|
|
135
137
|
@claimed_vendored_frameworks = nil
|
|
136
138
|
@framework_owner_map = nil
|
|
137
139
|
@xcframework_slice_cache = nil
|
|
140
|
+
@status_cache = {}
|
|
138
141
|
end
|
|
139
142
|
|
|
140
143
|
# Checks if a pod is configured to be built from source via buildFromSource.
|
|
@@ -541,7 +544,7 @@ module Expo
|
|
|
541
544
|
|
|
542
545
|
log_linking_status(spec.name, true, default_tarball)
|
|
543
546
|
|
|
544
|
-
spec.source = { :http =>
|
|
547
|
+
spec.source = { :http => local_file_uri(default_tarball), :flatten => false }
|
|
545
548
|
spec.vendored_frameworks = build_vendored_paths(product_name, pod_info, spec.name)
|
|
546
549
|
|
|
547
550
|
extra_fw_paths = framework_search_paths_for_skipped_deps(spec.name, pod_info)
|
|
@@ -579,7 +582,7 @@ module Expo
|
|
|
579
582
|
spec_json = JSON.parse(spec.to_pretty_json)
|
|
580
583
|
|
|
581
584
|
# Override source to local tarball
|
|
582
|
-
spec_json['source'] = { 'http' =>
|
|
585
|
+
spec_json['source'] = { 'http' => local_file_uri(default_tarball), 'flatten' => false }
|
|
583
586
|
spec_json['vendored_frameworks'] = build_vendored_paths(product_name, pod_info, spec.name)
|
|
584
587
|
|
|
585
588
|
# Clear source-build attributes
|
|
@@ -908,6 +911,14 @@ module Expo
|
|
|
908
911
|
ENV['RCT_USE_PREBUILT_RNCORE'] == '1'
|
|
909
912
|
end
|
|
910
913
|
|
|
914
|
+
# Builds a `file://` URI for a local filesystem path, percent-encoding
|
|
915
|
+
# any non-ASCII characters so paths with Unicode segments (e.g. emoji or
|
|
916
|
+
# accented characters) don't trip URI::File.build's RFC 3986 path
|
|
917
|
+
# validation.
|
|
918
|
+
def local_file_uri(path)
|
|
919
|
+
URI::File.build(path: URI::DEFAULT_PARSER.escape(path)).to_s
|
|
920
|
+
end
|
|
921
|
+
|
|
911
922
|
# ──────────────────────────────────────────────────────────────────────
|
|
912
923
|
# Helpers: use_frameworks! configuration
|
|
913
924
|
# ──────────────────────────────────────────────────────────────────────
|
|
@@ -1810,6 +1821,11 @@ module Expo
|
|
|
1810
1821
|
# A pod may use a prebuilt xcframework only when its own prebuilt artifact
|
|
1811
1822
|
# exists and every local Expo dependency also uses prebuilt.
|
|
1812
1823
|
def resolve_prebuilt_status(pod_name, visiting = Set.new)
|
|
1824
|
+
return _resolve_prebuilt_status_uncached(pod_name, visiting) unless visiting.empty?
|
|
1825
|
+
@status_cache[pod_name] ||= _resolve_prebuilt_status_uncached(pod_name, visiting)
|
|
1826
|
+
end
|
|
1827
|
+
|
|
1828
|
+
def _resolve_prebuilt_status_uncached(pod_name, visiting)
|
|
1813
1829
|
return { available: false, reason: :build_from_source } if build_from_source?(pod_name)
|
|
1814
1830
|
return { available: true } if visiting.include?(pod_name)
|
|
1815
1831
|
|
|
@@ -145,8 +145,9 @@ module Expo
|
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
target.pod_targets.each do |pod_target|
|
|
148
|
+
is_core = pod_target.name == 'ExpoModulesCore'
|
|
148
149
|
has_core_dependency = pod_target.dependencies.find { |dependency| dependency == 'ExpoModulesCore' }
|
|
149
|
-
next unless has_core_dependency
|
|
150
|
+
next unless is_core || has_core_dependency
|
|
150
151
|
pod_target.build_settings.each do |build_configuration_name, build_settings|
|
|
151
152
|
xcconfig = build_settings.xcconfig
|
|
152
153
|
swift_flags = xcconfig.attributes[SWIFT_FLAGS] || '$(inherited)'
|