react-native 0.75.3 → 0.75.5

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.
Files changed (29) hide show
  1. package/Libraries/Blob/RCTFileReaderModule.mm +4 -3
  2. package/Libraries/Core/ReactNativeVersion.js +1 -1
  3. package/Libraries/Image/RCTImageLoader.mm +9 -1
  4. package/Libraries/Network/FormData.js +11 -3
  5. package/React/Base/RCTVersion.m +1 -1
  6. package/React/Views/RCTModalHostView.m +1 -0
  7. package/ReactAndroid/api/ReactAndroid.api +1 -0
  8. package/ReactAndroid/gradle.properties +1 -1
  9. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +13 -14
  10. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  11. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -0
  12. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +1 -8
  13. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  14. package/ReactCommon/jsi/jsi/decorator.h +49 -0
  15. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -4
  16. package/ReactCommon/react/renderer/animations/utils.h +45 -0
  17. package/gradle/libs.versions.toml +1 -1
  18. package/package.json +8 -8
  19. package/scripts/cocoapods/utils.rb +2 -9
  20. package/scripts/react-native-xcode.sh +3 -2
  21. package/sdks/.hermesversion +1 -1
  22. package/sdks/hermes-engine/utils/build-apple-framework.sh +0 -12
  23. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  24. package/sdks/hermesc/osx-bin/hermes +0 -0
  25. package/sdks/hermesc/osx-bin/hermesc +0 -0
  26. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  27. package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
  28. package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
  29. package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
@@ -72,9 +72,10 @@ RCT_EXPORT_METHOD(readAsDataURL
72
72
  nil);
73
73
  } else {
74
74
  NSString *type = [RCTConvert NSString:blob[@"type"]];
75
- NSString *text = [NSString stringWithFormat:@"data:%@;base64,%@",
76
- type != nil && [type length] > 0 ? type : @"application/octet-stream",
77
- [data base64EncodedStringWithOptions:0]];
75
+ NSString *text = [NSString
76
+ stringWithFormat:@"data:%@;base64,%@",
77
+ ![type isEqual:[NSNull null]] && [type length] > 0 ? type : @"application/octet-stream",
78
+ [data base64EncodedStringWithOptions:0]];
78
79
 
79
80
  resolve(text);
80
81
  }
@@ -16,7 +16,7 @@ const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 75,
19
- patch: 3,
19
+ patch: 5,
20
20
  prerelease: null,
21
21
  };
22
22
 
@@ -470,7 +470,15 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image, CGSize size, CGFloat scal
470
470
 
471
471
  // Add missing png extension
472
472
  if (request.URL.fileURL && request.URL.pathExtension.length == 0) {
473
- mutableRequest.URL = [request.URL URLByAppendingPathExtension:@"png"];
473
+ // Check if there exists a file with that url on disk already
474
+ // This should fix issue https://github.com/facebook/react-native/issues/46870
475
+ if ([[NSFileManager defaultManager] fileExistsAtPath:request.URL.path]) {
476
+ mutableRequest.URL = request.URL;
477
+ } else {
478
+ // This is the default behavior in case there is no file on disk with no extension.
479
+ // We assume that the extension is `png`.
480
+ mutableRequest.URL = [request.URL URLByAppendingPathExtension:@"png"];
481
+ }
474
482
  }
475
483
  if (_redirectDelegate != nil) {
476
484
  mutableRequest.URL = [_redirectDelegate redirectAssetsURL:mutableRequest.URL];
@@ -28,6 +28,15 @@ type FormDataPart =
28
28
  ...
29
29
  };
30
30
 
31
+ /**
32
+ * Encode a FormData filename compliant with RFC 2183
33
+ *
34
+ * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#directives
35
+ */
36
+ function encodeFilename(filename: string): string {
37
+ return encodeURIComponent(filename.replace(/\//g, '_'));
38
+ }
39
+
31
40
  /**
32
41
  * Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests
33
42
  * with mixed data (string, native files) to be submitted via XMLHttpRequest.
@@ -82,9 +91,8 @@ class FormData {
82
91
  // content type (cf. web Blob interface.)
83
92
  if (typeof value === 'object' && !Array.isArray(value) && value) {
84
93
  if (typeof value.name === 'string') {
85
- headers['content-disposition'] += `; filename="${
86
- value.name
87
- }"; filename*=utf-8''${encodeURI(value.name)}`;
94
+ headers['content-disposition'] +=
95
+ `; filename="${encodeFilename(value.name)}"`;
88
96
  }
89
97
  if (typeof value.type === 'string') {
90
98
  headers['content-type'] = value.type;
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(75),
26
- RCTVersionPatch: @(3),
26
+ RCTVersionPatch: @(5),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -119,6 +119,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : coder)
119
119
  if (_isPresented) {
120
120
  [_delegate dismissModalHostView:self withViewController:_modalViewController animated:[self hasAnimationType]];
121
121
  _isPresented = NO;
122
+ [self setVisible:NO];
122
123
  }
123
124
  }
124
125
 
@@ -7732,6 +7732,7 @@ public class com/facebook/react/views/textinput/ReactEditText : androidx/appcomp
7732
7732
  public fun setBorderStyle (Ljava/lang/String;)V
7733
7733
  public fun setBorderWidth (IF)V
7734
7734
  public fun setContentSizeWatcher (Lcom/facebook/react/views/textinput/ContentSizeWatcher;)V
7735
+ public fun setContextMenuHidden (Z)V
7735
7736
  public fun setDisableFullscreenUI (Z)V
7736
7737
  public fun setFontFamily (Ljava/lang/String;)V
7737
7738
  public fun setFontFeatureSettings (Ljava/lang/String;)V
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.75.3
1
+ VERSION_NAME=0.75.5
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -169,26 +169,25 @@ public class HeadlessJsTaskContext {
169
169
 
170
170
  /**
171
171
  * Finish a JS task. Doesn't actually stop the task on the JS side, only removes it from the list
172
- * of active tasks and notifies listeners. A task can only be finished once.
172
+ * of active tasks and notifies listeners.
173
173
  *
174
174
  * @param taskId the unique id returned by {@link #startTask}.
175
175
  */
176
176
  public synchronized void finishTask(final int taskId) {
177
- Assertions.assertCondition(
178
- mActiveTasks.remove(taskId), "Tried to finish non-existent task with id " + taskId + ".");
179
- Assertions.assertCondition(
180
- mActiveTaskConfigs.remove(taskId) != null,
181
- "Tried to remove non-existent task config with id " + taskId + ".");
177
+ boolean removed = mActiveTasks.remove(taskId);
178
+ mActiveTaskConfigs.remove(taskId);
182
179
  removeTimeout(taskId);
183
- UiThreadUtil.runOnUiThread(
184
- new Runnable() {
185
- @Override
186
- public void run() {
187
- for (HeadlessJsTaskEventListener listener : mHeadlessJsTaskEventListeners) {
188
- listener.onHeadlessJsTaskFinish(taskId);
180
+ if (removed) {
181
+ UiThreadUtil.runOnUiThread(
182
+ new Runnable() {
183
+ @Override
184
+ public void run() {
185
+ for (HeadlessJsTaskEventListener listener : mHeadlessJsTaskEventListeners) {
186
+ listener.onHeadlessJsTaskFinish(taskId);
187
+ }
189
188
  }
190
- }
191
- });
189
+ });
190
+ }
192
191
  }
193
192
 
194
193
  private void removeTimeout(int taskId) {
@@ -17,6 +17,6 @@ public class ReactNativeVersion {
17
17
  public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
18
18
  "major", 0,
19
19
  "minor", 75,
20
- "patch", 3,
20
+ "patch", 5,
21
21
  "prerelease", null);
22
22
  }
@@ -118,6 +118,7 @@ public class ReactEditText extends AppCompatEditText {
118
118
  private int mFontWeight = ReactConstants.UNSET;
119
119
  private int mFontStyle = ReactConstants.UNSET;
120
120
  private boolean mAutoFocus = false;
121
+ private boolean mContextMenuHidden = false;
121
122
  private boolean mDidAttachToWindow = false;
122
123
  private @Nullable String mPlaceholder = null;
123
124
 
@@ -191,6 +192,9 @@ public class ReactEditText extends AppCompatEditText {
191
192
  */
192
193
  @Override
193
194
  public boolean onCreateActionMode(ActionMode mode, Menu menu) {
195
+ if (mContextMenuHidden) {
196
+ return false;
197
+ }
194
198
  menu.removeItem(android.R.id.pasteAsPlainText);
195
199
  return true;
196
200
  }
@@ -1031,12 +1035,18 @@ public class ReactEditText extends AppCompatEditText {
1031
1035
  public void onAttachedToWindow() {
1032
1036
  super.onAttachedToWindow();
1033
1037
 
1038
+ int selectionStart = getSelectionStart();
1039
+ int selectionEnd = getSelectionEnd();
1040
+
1034
1041
  // Used to ensure that text is selectable inside of removeClippedSubviews
1035
1042
  // See https://github.com/facebook/react-native/issues/6805 for original
1036
1043
  // fix that was ported to here.
1037
1044
 
1038
1045
  super.setTextIsSelectable(true);
1039
1046
 
1047
+ // Restore the selection since `setTextIsSelectable` changed it.
1048
+ setSelection(selectionStart, selectionEnd);
1049
+
1040
1050
  if (mContainsImages) {
1041
1051
  Spanned text = getText();
1042
1052
  TextInlineImageSpan[] spans = text.getSpans(0, text.length(), TextInlineImageSpan.class);
@@ -1121,6 +1131,10 @@ public class ReactEditText extends AppCompatEditText {
1121
1131
  mAutoFocus = autoFocus;
1122
1132
  }
1123
1133
 
1134
+ public void setContextMenuHidden(boolean contextMenuHidden) {
1135
+ mContextMenuHidden = contextMenuHidden;
1136
+ }
1137
+
1124
1138
  protected void applyTextAttributes() {
1125
1139
  // In general, the `getEffective*` functions return `Float.NaN` if the
1126
1140
  // property hasn't been set.
@@ -651,14 +651,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
651
651
 
652
652
  @ReactProp(name = "contextMenuHidden", defaultBoolean = false)
653
653
  public void setContextMenuHidden(ReactEditText view, boolean contextMenuHidden) {
654
- final boolean _contextMenuHidden = contextMenuHidden;
655
- view.setOnLongClickListener(
656
- new View.OnLongClickListener() {
657
- public boolean onLongClick(View v) {
658
- return _contextMenuHidden;
659
- }
660
- ;
661
- });
654
+ view.setContextMenuHidden(contextMenuHidden);
662
655
  }
663
656
 
664
657
  @ReactProp(name = "selectTextOnFocus", defaultBoolean = false)
@@ -17,7 +17,7 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 75;
20
- int32_t Patch = 3;
20
+ int32_t Patch = 5;
21
21
  std::string_view Prerelease = "";
22
22
  } ReactNativeVersion;
23
23
 
@@ -582,6 +582,10 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
582
582
  Around around{with_};
583
583
  return RD::cloneSymbol(pv);
584
584
  };
585
+ Runtime::PointerValue* cloneBigInt(const Runtime::PointerValue* pv) override {
586
+ Around around{with_};
587
+ return RD::cloneBigInt(pv);
588
+ };
585
589
  Runtime::PointerValue* cloneString(const Runtime::PointerValue* pv) override {
586
590
  Around around{with_};
587
591
  return RD::cloneString(pv);
@@ -610,6 +614,10 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
610
614
  Around around{with_};
611
615
  return RD::createPropNameIDFromString(str);
612
616
  };
617
+ PropNameID createPropNameIDFromSymbol(const Symbol& sym) override {
618
+ Around around{with_};
619
+ return RD::createPropNameIDFromSymbol(sym);
620
+ };
613
621
  std::string utf8(const PropNameID& id) override {
614
622
  Around around{with_};
615
623
  return RD::utf8(id);
@@ -624,6 +632,31 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
624
632
  return RD::symbolToString(sym);
625
633
  };
626
634
 
635
+ BigInt createBigIntFromInt64(int64_t i) override {
636
+ Around around{with_};
637
+ return RD::createBigIntFromInt64(i);
638
+ };
639
+ BigInt createBigIntFromUint64(uint64_t i) override {
640
+ Around around{with_};
641
+ return RD::createBigIntFromUint64(i);
642
+ };
643
+ bool bigintIsInt64(const BigInt& bi) override {
644
+ Around around{with_};
645
+ return RD::bigintIsInt64(bi);
646
+ };
647
+ bool bigintIsUint64(const BigInt& bi) override {
648
+ Around around{with_};
649
+ return RD::bigintIsUint64(bi);
650
+ };
651
+ uint64_t truncate(const BigInt& bi) override {
652
+ Around around{with_};
653
+ return RD::truncate(bi);
654
+ };
655
+ String bigintToString(const BigInt& bi, int i) override {
656
+ Around around{with_};
657
+ return RD::bigintToString(bi, i);
658
+ };
659
+
627
660
  String createStringFromAscii(const char* str, size_t length) override {
628
661
  Around around{with_};
629
662
  return RD::createStringFromAscii(str, length);
@@ -637,6 +670,11 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
637
670
  return RD::utf8(s);
638
671
  }
639
672
 
673
+ Value createValueFromJsonUtf8(const uint8_t* json, size_t length) override {
674
+ Around around{with_};
675
+ return RD::createValueFromJsonUtf8(json, length);
676
+ };
677
+
640
678
  Object createObject() override {
641
679
  Around around{with_};
642
680
  return RD::createObject();
@@ -797,6 +835,11 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
797
835
  Around around{with_};
798
836
  return RD::strictEquals(a, b);
799
837
  };
838
+ bool strictEquals(const BigInt& a, const BigInt& b) const override {
839
+ Around around{with_};
840
+ return RD::strictEquals(a, b);
841
+ };
842
+
800
843
  bool strictEquals(const String& a, const String& b) const override {
801
844
  Around around{with_};
802
845
  return RD::strictEquals(a, b);
@@ -811,6 +854,12 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
811
854
  return RD::instanceOf(o, f);
812
855
  };
813
856
 
857
+ void setExternalMemoryPressure(const jsi::Object& obj, size_t amount)
858
+ override {
859
+ Around around{with_};
860
+ RD::setExternalMemoryPressure(obj, amount);
861
+ };
862
+
814
863
  private:
815
864
  // Wrap an RAII type around With& to guarantee after always happens.
816
865
  struct Around {
@@ -794,10 +794,7 @@ LayoutAnimationKeyFrameManager::pullTransaction(
794
794
  finalConflictingMutations.end(),
795
795
  &shouldFirstComeBeforeSecondMutation);
796
796
 
797
- std::stable_sort(
798
- immediateMutations.begin(),
799
- immediateMutations.end(),
800
- &shouldFirstComeBeforeSecondRemovesOnly);
797
+ handleShouldFirstComeBeforeSecondRemovesOnly(immediateMutations);
801
798
 
802
799
  animation.keyFrames = keyFramesToAnimate;
803
800
  inflightAnimations_.push_back(std::move(animation));
@@ -24,6 +24,40 @@ static inline bool shouldFirstComeBeforeSecondRemovesOnly(
24
24
  (lhs.index > rhs.index);
25
25
  }
26
26
 
27
+ static inline void handleShouldFirstComeBeforeSecondRemovesOnly(
28
+ ShadowViewMutation::List& list) noexcept {
29
+ std::unordered_map<std::string, std::vector<ShadowViewMutation>>
30
+ removeMutationsByTag;
31
+ ShadowViewMutation::List finalList;
32
+ for (auto& mutation : list) {
33
+ if (mutation.type == ShadowViewMutation::Type::Remove) {
34
+ auto key = std::to_string(mutation.parentShadowView.tag);
35
+ removeMutationsByTag[key].push_back(mutation);
36
+ } else {
37
+ finalList.push_back(mutation);
38
+ }
39
+ }
40
+
41
+ if (removeMutationsByTag.size() == 0) {
42
+ return;
43
+ }
44
+
45
+ for (auto& mutationsPair : removeMutationsByTag) {
46
+ if (mutationsPair.second.size() > 1) {
47
+ std::stable_sort(
48
+ mutationsPair.second.begin(),
49
+ mutationsPair.second.end(),
50
+ &shouldFirstComeBeforeSecondRemovesOnly);
51
+ }
52
+ finalList.insert(
53
+ finalList.begin(),
54
+ mutationsPair.second.begin(),
55
+ mutationsPair.second.end());
56
+ }
57
+
58
+ list = finalList;
59
+ }
60
+
27
61
  static inline bool shouldFirstComeBeforeSecondMutation(
28
62
  const ShadowViewMutation& lhs,
29
63
  const ShadowViewMutation& rhs) noexcept {
@@ -55,6 +89,17 @@ static inline bool shouldFirstComeBeforeSecondMutation(
55
89
  lhs.type == ShadowViewMutation::Type::Insert) {
56
90
  return false;
57
91
  }
92
+
93
+ // Remove comes before Update
94
+ if (lhs.type == ShadowViewMutation::Type::Remove &&
95
+ rhs.type == ShadowViewMutation::Type::Update) {
96
+ return true;
97
+ }
98
+ if (rhs.type == ShadowViewMutation::Type::Remove &&
99
+ lhs.type == ShadowViewMutation::Type::Update) {
100
+ return false;
101
+ }
102
+
58
103
  } else {
59
104
  // Make sure that removes on the same level are sorted - highest indices
60
105
  // must come first.
@@ -23,7 +23,7 @@ javax-annotation-api = "1.3.2"
23
23
  javax-inject = "1"
24
24
  jsr305 = "3.0.2"
25
25
  junit = "4.13.2"
26
- kotlin = "1.9.24"
26
+ kotlin = "1.9.25"
27
27
  mockito = "3.12.4"
28
28
  nexus-publish = "1.3.0"
29
29
  okhttp = "4.9.2"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.75.3",
3
+ "version": "0.75.5",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -112,13 +112,13 @@
112
112
  "@react-native-community/cli": "14.1.0",
113
113
  "@react-native-community/cli-platform-android": "14.1.0",
114
114
  "@react-native-community/cli-platform-ios": "14.1.0",
115
- "@react-native/assets-registry": "0.75.3",
116
- "@react-native/codegen": "0.75.3",
117
- "@react-native/community-cli-plugin": "0.75.3",
118
- "@react-native/gradle-plugin": "0.75.3",
119
- "@react-native/js-polyfills": "0.75.3",
120
- "@react-native/normalize-colors": "0.75.3",
121
- "@react-native/virtualized-lists": "0.75.3",
115
+ "@react-native/assets-registry": "0.75.5",
116
+ "@react-native/codegen": "0.75.5",
117
+ "@react-native/community-cli-plugin": "0.75.5",
118
+ "@react-native/gradle-plugin": "0.75.5",
119
+ "@react-native/js-polyfills": "0.75.5",
120
+ "@react-native/normalize-colors": "0.75.5",
121
+ "@react-native/virtualized-lists": "0.75.5",
122
122
  "abort-controller": "^3.0.0",
123
123
  "anser": "^1.4.9",
124
124
  "ansi-regex": "^5.0.0",
@@ -235,16 +235,9 @@ class ReactNativePodsUtils
235
235
  if !file_manager.exist?("#{file_path}.local")
236
236
  # When installing pods with a yarn alias, yarn creates a fake yarn and node executables
237
237
  # in a temporary folder.
238
- # Using `type -a` we are able to retrieve all the paths of an executable and we can
239
- # exclude the temporary ones.
238
+ # Using `node --print "process.argv[0]";` we are able to retrieve the actual path from which node is running.
240
239
  # see https://github.com/facebook/react-native/issues/43285 for more info
241
- node_binary = `type -a node`.split("\n").map { |path|
242
- path.gsub!("node is ", "")
243
- }.select { |b|
244
- !b.start_with?("/var")
245
- }
246
-
247
- node_binary = node_binary[0]
240
+ node_binary = `node --print "process.argv[0]";`
248
241
  system("echo 'export NODE_BINARY=#{node_binary}' > #{file_path}.local")
249
242
  end
250
243
  end
@@ -92,6 +92,8 @@ fi
92
92
 
93
93
  [ -z "$CLI_PATH" ] && CLI_PATH="$REACT_NATIVE_DIR/scripts/bundle.js"
94
94
 
95
+ [ -z "$BUNDLE_COMMAND" ] && BUNDLE_COMMAND="bundle"
96
+
95
97
  [ -z "$COMPOSE_SOURCEMAP_PATH" ] && COMPOSE_SOURCEMAP_PATH="$REACT_NATIVE_DIR/scripts/compose-source-maps.js"
96
98
 
97
99
  if [[ -z "$BUNDLE_CONFIG" ]]; then
@@ -141,7 +143,7 @@ fi
141
143
  if [[ -n "$CONFIG_JSON" ]]; then
142
144
  EXTRA_ARGS+=("--load-config" "$CONFIG_JSON")
143
145
  elif [[ -n "$CONFIG_CMD" ]]; then
144
- EXTRA_ARGS+=("--config-cmd" "$CONFIG_APP")
146
+ EXTRA_ARGS+=("--config-cmd" "$CONFIG_CMD")
145
147
  else
146
148
  EXTRA_ARGS+=("--config-cmd" "$NODE_BINARY $NODE_ARGS $REACT_NATIVE_DIR/cli.js config")
147
149
  fi
@@ -149,7 +151,6 @@ fi
149
151
  # shellcheck disable=SC2086
150
152
  "$NODE_BINARY" $NODE_ARGS "$CLI_PATH" $BUNDLE_COMMAND \
151
153
  $CONFIG_ARG \
152
- --config-cmd "$CONFIG" \
153
154
  --entry-file "$ENTRY_FILE" \
154
155
  --platform "$BUNDLE_PLATFORM" \
155
156
  --dev $DEV \
@@ -1 +1 @@
1
- hermes-2024-08-15-RNv0.75.1-4b3bf912cc0f705b51b71ce1a5b8bd79b93a451b
1
+ hermes-2025-02-06-RNv0.75.5-53ff6df3af18e250c29a74f34273f50dbfa410dc
@@ -198,19 +198,7 @@ function create_universal_framework {
198
198
  for i in "${!platforms[@]}"; do
199
199
  local platform="${platforms[$i]}"
200
200
  local hermes_framework_path="${platform}/hermes.framework"
201
- local dSYM_path="$hermes_framework_path"
202
- local dSYM_base_path="$HERMES_PATH/destroot/Library/Frameworks"
203
-
204
- # If the dSYM rename has failed, the dSYM are generated as 0.dSYM
205
- # (Apple default name) rather then hermes.framework.dSYM.
206
- if [[ -e "$dSYM_base_path/${platform}/0.dSYM" ]]; then
207
- dSYM_path="${platform}/0"
208
- fi
209
-
210
201
  args+="-framework $hermes_framework_path "
211
-
212
- # Path to dSYM must be absolute
213
- args+="-debug-symbols $dSYM_base_path/$dSYM_path.dSYM "
214
202
  done
215
203
 
216
204
  mkdir -p universal
Binary file
Binary file
Binary file
Binary file
Binary file