react-native 0.71.13 → 0.71.15
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/Libraries/Core/ReactNativeVersion.js +1 -1
- package/React/Base/RCTVersion.m +1 -1
- package/ReactAndroid/build.gradle +1 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +18 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +19 -2
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsc/JSCRuntime.cpp +10 -0
- package/package.json +6 -6
- package/scripts/cocoapods/helpers.rb +16 -0
- package/scripts/cocoapods/utils.rb +135 -17
- package/scripts/react_native_pods.rb +6 -3
- package/sdks/hermes-engine/utils/build-apple-framework.sh +8 -1
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +8 -0
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/template/Gemfile +1 -0
- package/template/package.json +1 -1
- package/third-party-podspecs/boost.podspec +1 -1
package/React/Base/RCTVersion.m
CHANGED
|
@@ -241,7 +241,7 @@ task createNativeDepsDirectories {
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
|
|
244
|
-
src("https://
|
|
244
|
+
src("https://archives.boost.io/release/${BOOST_VERSION.replace("_", ".")}/source/boost_${BOOST_VERSION}.tar.gz")
|
|
245
245
|
onlyIfNewer(true)
|
|
246
246
|
overwrite(false)
|
|
247
247
|
dest(new File(downloadsDir, "boost_${BOOST_VERSION}.tar.gz"))
|
|
@@ -12,9 +12,7 @@ import static com.facebook.react.uimanager.common.UIManagerType.DEFAULT;
|
|
|
12
12
|
import static com.facebook.react.uimanager.common.UIManagerType.FABRIC;
|
|
13
13
|
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
|
|
14
14
|
|
|
15
|
-
import android.app.Activity;
|
|
16
15
|
import android.content.Context;
|
|
17
|
-
import android.content.ContextWrapper;
|
|
18
16
|
import android.graphics.Canvas;
|
|
19
17
|
import android.graphics.Insets;
|
|
20
18
|
import android.graphics.Point;
|
|
@@ -917,12 +915,18 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
917
915
|
checkForDeviceDimensionsChanges();
|
|
918
916
|
}
|
|
919
917
|
|
|
920
|
-
private
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
918
|
+
private @Nullable WindowManager.LayoutParams getWindowLayoutParams() {
|
|
919
|
+
View view = ReactRootView.this;
|
|
920
|
+
if (view.getLayoutParams() instanceof WindowManager.LayoutParams) {
|
|
921
|
+
return (WindowManager.LayoutParams) view.getLayoutParams();
|
|
924
922
|
}
|
|
925
|
-
|
|
923
|
+
while (view.getParent() instanceof View) {
|
|
924
|
+
view = (View) view.getParent();
|
|
925
|
+
if (view.getLayoutParams() instanceof WindowManager.LayoutParams) {
|
|
926
|
+
return (WindowManager.LayoutParams) view.getLayoutParams();
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
return null;
|
|
926
930
|
}
|
|
927
931
|
|
|
928
932
|
@RequiresApi(api = Build.VERSION_CODES.R)
|
|
@@ -942,7 +946,13 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
|
|
|
942
946
|
Insets barInsets = rootInsets.getInsets(WindowInsets.Type.systemBars());
|
|
943
947
|
int height = imeInsets.bottom - barInsets.bottom;
|
|
944
948
|
|
|
945
|
-
int softInputMode
|
|
949
|
+
int softInputMode;
|
|
950
|
+
WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams();
|
|
951
|
+
if (windowLayoutParams != null) {
|
|
952
|
+
softInputMode = windowLayoutParams.softInputMode;
|
|
953
|
+
} else {
|
|
954
|
+
return;
|
|
955
|
+
}
|
|
946
956
|
int screenY =
|
|
947
957
|
softInputMode == WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING
|
|
948
958
|
? mVisibleViewArea.bottom - height
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java
CHANGED
|
@@ -204,6 +204,11 @@ import java.util.Map;
|
|
|
204
204
|
mDefaultValue = defaultValue;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
public ColorPropSetter(ReactPropGroup prop, Method setter, int index, int defaultValue) {
|
|
208
|
+
super(prop, "mixed", setter, index);
|
|
209
|
+
mDefaultValue = defaultValue;
|
|
210
|
+
}
|
|
211
|
+
|
|
207
212
|
@Override
|
|
208
213
|
protected Object getValueOrDefault(Object value, Context context) {
|
|
209
214
|
if (value == null) {
|
|
@@ -331,6 +336,10 @@ import java.util.Map;
|
|
|
331
336
|
super(prop, "mixed", setter);
|
|
332
337
|
}
|
|
333
338
|
|
|
339
|
+
public BoxedColorPropSetter(ReactPropGroup prop, Method setter, int index) {
|
|
340
|
+
super(prop, "mixed", setter, index);
|
|
341
|
+
}
|
|
342
|
+
|
|
334
343
|
@Override
|
|
335
344
|
protected @Nullable Object getValueOrDefault(Object value, Context context) {
|
|
336
345
|
if (value != null) {
|
|
@@ -463,7 +472,11 @@ import java.util.Map;
|
|
|
463
472
|
}
|
|
464
473
|
} else if (propTypeClass == int.class) {
|
|
465
474
|
for (int i = 0; i < names.length; i++) {
|
|
466
|
-
|
|
475
|
+
if ("Color".equals(annotation.customType())) {
|
|
476
|
+
props.put(names[i], new ColorPropSetter(annotation, method, i, annotation.defaultInt()));
|
|
477
|
+
} else {
|
|
478
|
+
props.put(names[i], new IntPropSetter(annotation, method, i, annotation.defaultInt()));
|
|
479
|
+
}
|
|
467
480
|
}
|
|
468
481
|
} else if (propTypeClass == float.class) {
|
|
469
482
|
for (int i = 0; i < names.length; i++) {
|
|
@@ -476,7 +489,11 @@ import java.util.Map;
|
|
|
476
489
|
}
|
|
477
490
|
} else if (propTypeClass == Integer.class) {
|
|
478
491
|
for (int i = 0; i < names.length; i++) {
|
|
479
|
-
|
|
492
|
+
if ("Color".equals(annotation.customType())) {
|
|
493
|
+
props.put(names[i], new BoxedColorPropSetter(annotation, method, i));
|
|
494
|
+
} else {
|
|
495
|
+
props.put(names[i], new BoxedIntPropSetter(annotation, method, i));
|
|
496
|
+
}
|
|
480
497
|
}
|
|
481
498
|
} else {
|
|
482
499
|
throw new RuntimeException(
|
|
@@ -300,6 +300,9 @@ class JSCRuntime : public jsi::Runtime {
|
|
|
300
300
|
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
|
|
301
301
|
#define _JSC_NO_ARRAY_BUFFERS
|
|
302
302
|
#endif
|
|
303
|
+
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160400
|
|
304
|
+
#define _JSC_HAS_INSPECTABLE
|
|
305
|
+
#endif
|
|
303
306
|
#endif
|
|
304
307
|
#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
|
|
305
308
|
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11
|
|
@@ -396,6 +399,13 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx)
|
|
|
396
399
|
stringCounter_(0)
|
|
397
400
|
#endif
|
|
398
401
|
{
|
|
402
|
+
#ifndef NDEBUG
|
|
403
|
+
#ifdef _JSC_HAS_INSPECTABLE
|
|
404
|
+
if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) {
|
|
405
|
+
JSGlobalContextSetInspectable(ctx_, true);
|
|
406
|
+
}
|
|
407
|
+
#endif
|
|
408
|
+
#endif
|
|
399
409
|
}
|
|
400
410
|
|
|
401
411
|
JSCRuntime::~JSCRuntime() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.71.
|
|
3
|
+
"version": "0.71.15",
|
|
4
4
|
"bin": "./cli.js",
|
|
5
5
|
"description": "A framework for building native apps using React",
|
|
6
6
|
"license": "MIT",
|
|
@@ -111,9 +111,9 @@
|
|
|
111
111
|
},
|
|
112
112
|
"dependencies": {
|
|
113
113
|
"@jest/create-cache-key-function": "^29.2.1",
|
|
114
|
-
"@react-native-community/cli": "10.2.
|
|
114
|
+
"@react-native-community/cli": "10.2.6",
|
|
115
115
|
"@react-native-community/cli-platform-android": "10.2.0",
|
|
116
|
-
"@react-native-community/cli-platform-ios": "10.2.
|
|
116
|
+
"@react-native-community/cli-platform-ios": "10.2.5",
|
|
117
117
|
"@react-native/assets": "1.0.0",
|
|
118
118
|
"@react-native/normalize-color": "2.1.0",
|
|
119
119
|
"@react-native/polyfills": "2.0.0",
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"use-sync-external-store": "^1.0.0",
|
|
145
145
|
"whatwg-fetch": "^3.0.0",
|
|
146
146
|
"ws": "^6.2.2",
|
|
147
|
-
"react-native-codegen": "^0.71.
|
|
147
|
+
"react-native-codegen": "^0.71.6"
|
|
148
148
|
},
|
|
149
149
|
"devDependencies": {
|
|
150
150
|
"flow-bin": "^0.191.0",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"@definitelytyped/dtslint": "^0.0.127",
|
|
160
160
|
"@react-native-community/eslint-config": "*",
|
|
161
161
|
"@react-native-community/eslint-plugin": "*",
|
|
162
|
-
"@react-native/eslint-plugin-specs": "^0.71.
|
|
162
|
+
"@react-native/eslint-plugin-specs": "^0.71.2",
|
|
163
163
|
"@reactions/component": "^2.0.2",
|
|
164
164
|
"@types/react": "^18.0.18",
|
|
165
165
|
"@typescript-eslint/parser": "^5.30.5",
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
"inquirer": "^7.1.0",
|
|
184
184
|
"jest": "^29.2.1",
|
|
185
185
|
"jest-junit": "^10.0.0",
|
|
186
|
-
"jscodeshift": "^0.
|
|
186
|
+
"jscodeshift": "^0.14.0",
|
|
187
187
|
"metro-babel-register": "0.73.10",
|
|
188
188
|
"metro-memory-fs": "0.73.10",
|
|
189
189
|
"mkdirp": "^0.5.1",
|
|
@@ -11,6 +11,14 @@ class SysctlChecker
|
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Helper class that is used to easily send commands to Xcodebuild
|
|
15
|
+
# And that can be subclassed for testing purposes.
|
|
16
|
+
class Xcodebuild
|
|
17
|
+
def self.version
|
|
18
|
+
`xcodebuild -version`
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
14
22
|
# Helper object to wrap system properties like RUBY_PLATFORM
|
|
15
23
|
# This makes it easier to mock the behaviour in tests
|
|
16
24
|
class Environment
|
|
@@ -26,3 +34,11 @@ class Finder
|
|
|
26
34
|
return `find #{path} -type f \\( #{js_files} -or #{ts_files} \\)`.split("\n").sort()
|
|
27
35
|
end
|
|
28
36
|
end
|
|
37
|
+
|
|
38
|
+
module Helpers
|
|
39
|
+
class Constants
|
|
40
|
+
def self.min_ios_version_supported
|
|
41
|
+
return '12.4'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -53,22 +53,35 @@ class ReactNativePodsUtils
|
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
-
def self.
|
|
57
|
-
|
|
56
|
+
def self.extract_projects(installer)
|
|
57
|
+
return installer.aggregate_targets
|
|
58
58
|
.map{ |t| t.user_project }
|
|
59
59
|
.uniq{ |p| p.path }
|
|
60
60
|
.push(installer.pods_project)
|
|
61
|
+
end
|
|
61
62
|
|
|
63
|
+
def self.exclude_i386_architecture_while_using_hermes(installer)
|
|
64
|
+
is_using_hermes = self.has_pod(installer, 'hermes-engine')
|
|
62
65
|
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
if is_using_hermes
|
|
67
|
+
key = "EXCLUDED_ARCHS[sdk=iphonesimulator*]"
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
project.build_configurations.each do |config|
|
|
68
|
-
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = excluded_archs_default
|
|
69
|
-
end
|
|
69
|
+
projects = self.extract_projects(installer)
|
|
70
70
|
|
|
71
|
-
project
|
|
71
|
+
projects.each do |project|
|
|
72
|
+
project.build_configurations.each do |config|
|
|
73
|
+
current_setting = config.build_settings[key] || ""
|
|
74
|
+
|
|
75
|
+
excluded_archs_includes_I386 = current_setting.include?("i386")
|
|
76
|
+
|
|
77
|
+
if !excluded_archs_includes_I386
|
|
78
|
+
# Hermes does not support `i386` architecture
|
|
79
|
+
config.build_settings[key] = "#{current_setting} i386".strip
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
project.save()
|
|
84
|
+
end
|
|
72
85
|
end
|
|
73
86
|
end
|
|
74
87
|
|
|
@@ -131,15 +144,29 @@ class ReactNativePodsUtils
|
|
|
131
144
|
end
|
|
132
145
|
end
|
|
133
146
|
|
|
134
|
-
def self.apply_xcode_15_patch(installer)
|
|
135
|
-
installer
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
147
|
+
def self.apply_xcode_15_patch(installer, xcodebuild_manager: Xcodebuild)
|
|
148
|
+
projects = self.extract_projects(installer)
|
|
149
|
+
|
|
150
|
+
gcc_preprocessor_definition_key = 'GCC_PREPROCESSOR_DEFINITIONS'
|
|
151
|
+
other_ld_flags_key = 'OTHER_LDFLAGS'
|
|
152
|
+
libcpp_cxx17_fix = '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION'
|
|
153
|
+
xcode15_compatibility_flags = '-Wl -ld_classic '
|
|
154
|
+
|
|
155
|
+
projects.each do |project|
|
|
156
|
+
project.build_configurations.each do |config|
|
|
157
|
+
# fix for unary_function and binary_function
|
|
158
|
+
self.safe_init(config, gcc_preprocessor_definition_key)
|
|
159
|
+
self.add_value_to_setting_if_missing(config, gcc_preprocessor_definition_key, libcpp_cxx17_fix)
|
|
160
|
+
|
|
161
|
+
# fix for weak linking
|
|
162
|
+
self.safe_init(config, other_ld_flags_key)
|
|
163
|
+
if self.is_using_xcode15_or_greter(:xcodebuild_manager => xcodebuild_manager)
|
|
164
|
+
self.add_value_to_setting_if_missing(config, other_ld_flags_key, xcode15_compatibility_flags)
|
|
165
|
+
else
|
|
166
|
+
self.remove_value_from_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
|
|
167
|
+
end
|
|
142
168
|
end
|
|
169
|
+
project.save()
|
|
143
170
|
end
|
|
144
171
|
end
|
|
145
172
|
|
|
@@ -197,4 +224,95 @@ class ReactNativePodsUtils
|
|
|
197
224
|
ENV['USE_FRAMEWORKS'] = nil
|
|
198
225
|
end
|
|
199
226
|
end
|
|
227
|
+
|
|
228
|
+
def self.updateIphoneOSDeploymentTarget(installer)
|
|
229
|
+
pod_to_update = Set.new([
|
|
230
|
+
"boost",
|
|
231
|
+
"CocoaAsyncSocket",
|
|
232
|
+
"Flipper",
|
|
233
|
+
"Flipper-DoubleConversion",
|
|
234
|
+
"Flipper-Fmt",
|
|
235
|
+
"Flipper-Boost-iOSX",
|
|
236
|
+
"Flipper-Folly",
|
|
237
|
+
"Flipper-Glog",
|
|
238
|
+
"Flipper-PeerTalk",
|
|
239
|
+
"FlipperKit",
|
|
240
|
+
"fmt",
|
|
241
|
+
"libevent",
|
|
242
|
+
"OpenSSL-Universal",
|
|
243
|
+
"RCT-Folly",
|
|
244
|
+
"SocketRocket",
|
|
245
|
+
"YogaKit"
|
|
246
|
+
])
|
|
247
|
+
|
|
248
|
+
installer.target_installation_results.pod_target_installation_results
|
|
249
|
+
.each do |pod_name, target_installation_result|
|
|
250
|
+
unless pod_to_update.include?(pod_name)
|
|
251
|
+
next
|
|
252
|
+
end
|
|
253
|
+
target_installation_result.native_target.build_configurations.each do |config|
|
|
254
|
+
config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = Helpers::Constants.min_ios_version_supported
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
# ========= #
|
|
260
|
+
# Utilities #
|
|
261
|
+
# ========= #
|
|
262
|
+
|
|
263
|
+
def self.extract_projects(installer)
|
|
264
|
+
return installer.aggregate_targets
|
|
265
|
+
.map{ |t| t.user_project }
|
|
266
|
+
.uniq{ |p| p.path }
|
|
267
|
+
.push(installer.pods_project)
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
def self.safe_init(config, setting_name)
|
|
271
|
+
old_config = config.build_settings[setting_name]
|
|
272
|
+
if old_config == nil
|
|
273
|
+
config.build_settings[setting_name] ||= '$(inherited) '
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
def self.add_value_to_setting_if_missing(config, setting_name, value)
|
|
278
|
+
old_config = config.build_settings[setting_name]
|
|
279
|
+
if old_config.is_a?(Array)
|
|
280
|
+
old_config = old_config.join(" ")
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
trimmed_value = value.strip()
|
|
284
|
+
if !old_config.include?(trimmed_value)
|
|
285
|
+
config.build_settings[setting_name] = "#{old_config.strip()} #{trimmed_value}".strip()
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
def self.remove_value_from_setting_if_present(config, setting_name, value)
|
|
290
|
+
old_config = config.build_settings[setting_name]
|
|
291
|
+
if old_config.is_a?(Array)
|
|
292
|
+
old_config = old_config.join(" ")
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
trimmed_value = value.strip()
|
|
296
|
+
if old_config.include?(trimmed_value)
|
|
297
|
+
new_config = old_config.gsub(trimmed_value, "")
|
|
298
|
+
config.build_settings[setting_name] = new_config.strip()
|
|
299
|
+
end
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def self.is_using_xcode15_or_greter(xcodebuild_manager: Xcodebuild)
|
|
303
|
+
xcodebuild_version = xcodebuild_manager.version
|
|
304
|
+
|
|
305
|
+
# The output of xcodebuild -version is something like
|
|
306
|
+
# Xcode 15.0
|
|
307
|
+
# or
|
|
308
|
+
# Xcode 14.3.1
|
|
309
|
+
# We want to capture the version digits
|
|
310
|
+
regex = /(\d+)\.(\d+)(?:\.(\d+))?/
|
|
311
|
+
if match_data = xcodebuild_version.match(regex)
|
|
312
|
+
major = match_data[1].to_i
|
|
313
|
+
return major >= 15
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
return false
|
|
317
|
+
end
|
|
200
318
|
end
|
|
@@ -15,6 +15,7 @@ require_relative './cocoapods/codegen_utils.rb'
|
|
|
15
15
|
require_relative './cocoapods/utils.rb'
|
|
16
16
|
require_relative './cocoapods/new_architecture.rb'
|
|
17
17
|
require_relative './cocoapods/local_podspec_patch.rb'
|
|
18
|
+
require_relative './cocoapods/helpers.rb'
|
|
18
19
|
|
|
19
20
|
$CODEGEN_OUTPUT_DIR = 'build/generated/ios'
|
|
20
21
|
$CODEGEN_COMPONENT_DIR = 'react/renderer/components'
|
|
@@ -23,11 +24,11 @@ $FOLLY_VERSION = '2021.07.22.00'
|
|
|
23
24
|
|
|
24
25
|
$START_TIME = Time.now.to_i
|
|
25
26
|
|
|
26
|
-
# This function returns the min
|
|
27
|
-
# By using this function, you won't have to
|
|
27
|
+
# This function returns the min supported OS versions supported by React Native
|
|
28
|
+
# By using this function, you won't have to manually change your Podfile
|
|
28
29
|
# when we change the minimum version supported by the framework.
|
|
29
30
|
def min_ios_version_supported
|
|
30
|
-
return
|
|
31
|
+
return Helpers::Constants.min_ios_version_supported
|
|
31
32
|
end
|
|
32
33
|
|
|
33
34
|
# This function prepares the project for React Native, before processing
|
|
@@ -224,11 +225,13 @@ def react_native_post_install(installer, react_native_path = "../node_modules/re
|
|
|
224
225
|
ReactNativePodsUtils.fix_library_search_paths(installer)
|
|
225
226
|
ReactNativePodsUtils.set_node_modules_user_settings(installer, react_native_path)
|
|
226
227
|
ReactNativePodsUtils.apply_xcode_15_patch(installer)
|
|
228
|
+
ReactNativePodsUtils.updateIphoneOSDeploymentTarget(installer)
|
|
227
229
|
|
|
228
230
|
NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer)
|
|
229
231
|
is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == "1"
|
|
230
232
|
NewArchitectureHelper.modify_flags_for_new_architecture(installer, is_new_arch_enabled)
|
|
231
233
|
|
|
234
|
+
|
|
232
235
|
Pod::UI.puts "Pod install took #{Time.now.to_i - $START_TIME} [s] to run".green
|
|
233
236
|
end
|
|
234
237
|
|
|
@@ -52,7 +52,7 @@ function build_host_hermesc {
|
|
|
52
52
|
|
|
53
53
|
# Utility function to configure an Apple framework
|
|
54
54
|
function configure_apple_framework {
|
|
55
|
-
local build_cli_tools enable_bitcode enable_debugger cmake_build_type
|
|
55
|
+
local build_cli_tools enable_bitcode enable_debugger cmake_build_type xcode_15_flags xcode_major_version
|
|
56
56
|
|
|
57
57
|
if [[ $1 == iphoneos || $1 == catalyst ]]; then
|
|
58
58
|
enable_bitcode="true"
|
|
@@ -77,8 +77,15 @@ function configure_apple_framework {
|
|
|
77
77
|
cmake_build_type="MinSizeRel"
|
|
78
78
|
fi
|
|
79
79
|
|
|
80
|
+
xcode_15_flags=""
|
|
81
|
+
xcode_major_version=$(xcodebuild -version | grep -oE '[0-9]*' | head -n 1)
|
|
82
|
+
if [[ $xcode_major_version -ge 15 ]]; then
|
|
83
|
+
xcode_15_flags="LINKER:-ld_classic"
|
|
84
|
+
fi
|
|
85
|
+
|
|
80
86
|
pushd "$HERMES_PATH" > /dev/null || exit 1
|
|
81
87
|
cmake -S . -B "build_$1" \
|
|
88
|
+
-DHERMES_EXTRA_LINKER_FLAGS="$xcode_15_flags" \
|
|
82
89
|
-DHERMES_APPLE_TARGET_PLATFORM:STRING="$1" \
|
|
83
90
|
-DCMAKE_OSX_ARCHITECTURES:STRING="$2" \
|
|
84
91
|
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="$3" \
|
|
@@ -33,6 +33,13 @@ if [ -z "$deployment_target" ]; then
|
|
|
33
33
|
deployment_target=${MACOSX_DEPLOYMENT_TARGET}
|
|
34
34
|
fi
|
|
35
35
|
|
|
36
|
+
xcode_15_flags=""
|
|
37
|
+
xcode_major_version=$(xcodebuild -version | grep -oE '[0-9]*' | head -n 1)
|
|
38
|
+
if [[ $xcode_major_version -ge 15 ]]; then
|
|
39
|
+
echo "########### Using LINKER:-ld_classic ###########"
|
|
40
|
+
xcode_15_flags="LINKER:-ld_classic"
|
|
41
|
+
fi
|
|
42
|
+
|
|
36
43
|
architectures=$( echo "$ARCHS" | tr " " ";" )
|
|
37
44
|
|
|
38
45
|
echo "Configure Apple framework"
|
|
@@ -40,6 +47,7 @@ echo "Configure Apple framework"
|
|
|
40
47
|
"$CMAKE_BINARY" \
|
|
41
48
|
-S "${PODS_ROOT}/hermes-engine" \
|
|
42
49
|
-B "${PODS_ROOT}/hermes-engine/build/${PLATFORM_NAME}" \
|
|
50
|
+
-DHERMES_EXTRA_LINKER_FLAGS="$xcode_15_flags" \
|
|
43
51
|
-DHERMES_APPLE_TARGET_PLATFORM:STRING="$PLATFORM_NAME" \
|
|
44
52
|
-DCMAKE_OSX_ARCHITECTURES:STRING="$architectures" \
|
|
45
53
|
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING="$deployment_target" \
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/template/Gemfile
CHANGED
package/template/package.json
CHANGED
|
@@ -10,7 +10,7 @@ Pod::Spec.new do |spec|
|
|
|
10
10
|
spec.homepage = 'http://www.boost.org'
|
|
11
11
|
spec.summary = 'Boost provides free peer-reviewed portable C++ source libraries.'
|
|
12
12
|
spec.authors = 'Rene Rivera'
|
|
13
|
-
spec.source = { :http => 'https://
|
|
13
|
+
spec.source = { :http => 'https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2',
|
|
14
14
|
:sha256 => 'f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41' }
|
|
15
15
|
|
|
16
16
|
# Pinning to the same version as React.podspec.
|