react-native 0.72.12 → 0.72.14

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.
@@ -12,6 +12,6 @@
12
12
  exports.version = {
13
13
  major: 0,
14
14
  minor: 72,
15
- patch: 12,
15
+ patch: 14,
16
16
  prerelease: null,
17
17
  };
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(72),
26
- RCTVersionPatch: @(12),
26
+ RCTVersionPatch: @(14),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.72.12
1
+ VERSION_NAME=0.72.14
2
2
  GROUP=com.facebook.react
3
3
 
4
4
  # JVM Versions
@@ -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", 72,
20
- "patch", 12,
20
+ "patch", 14,
21
21
  "prerelease", null);
22
22
  }
@@ -175,7 +175,7 @@ public class UIImplementation {
175
175
  *
176
176
  * @return The num of root view
177
177
  */
178
- private int getRootViewNum() {
178
+ public int getRootViewNum() {
179
179
  return mOperationsQueue.getNativeViewHierarchyManager().getRootViewNum();
180
180
  }
181
181
 
@@ -608,12 +608,6 @@ public class UIImplementation {
608
608
 
609
609
  /** Invoked at the end of the transaction to commit any updates to the node hierarchy. */
610
610
  public void dispatchViewUpdates(int batchId) {
611
- if (getRootViewNum() <= 0) {
612
- // If there are no RootViews registered, there will be no View updates to dispatch.
613
- // This is a hack to prevent this from being called when Fabric is used everywhere.
614
- // This should no longer be necessary in Bridgeless Mode.
615
- return;
616
- }
617
611
  SystraceMessage.beginSection(
618
612
  Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "UIImplementation.dispatchViewUpdates")
619
613
  .arg("batchId", batchId)
@@ -719,7 +719,12 @@ public class UIManagerModule extends ReactContextBaseJavaModule
719
719
  listener.willDispatchViewUpdates(this);
720
720
  }
721
721
  try {
722
- mUIImplementation.dispatchViewUpdates(batchId);
722
+ // If there are no RootViews registered, there will be no View updates to dispatch.
723
+ // This is a hack to prevent this from being called when Fabric is used everywhere.
724
+ // This should no longer be necessary in Bridgeless Mode.
725
+ if (mUIImplementation.getRootViewNum() > 0) {
726
+ mUIImplementation.dispatchViewUpdates(batchId);
727
+ }
723
728
  } finally {
724
729
  Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
725
730
  }
@@ -17,7 +17,7 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 72;
20
- int32_t Patch = 12;
20
+ int32_t Patch = 14;
21
21
  std::string_view Prerelease = "";
22
22
  } ReactNativeVersion;
23
23
 
@@ -403,11 +403,13 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx)
403
403
  {
404
404
  #ifndef NDEBUG
405
405
  #ifdef _JSC_HAS_INSPECTABLE
406
+ #if (__OSX_AVAILABLE_STARTING(MAC_NA, IPHONE_16_4))
406
407
  if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) {
407
408
  JSGlobalContextSetInspectable(ctx_, true);
408
409
  }
409
410
  #endif
410
411
  #endif
412
+ #endif
411
413
  }
412
414
 
413
415
  JSCRuntime::~JSCRuntime() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.72.12",
3
+ "version": "0.72.14",
4
4
  "bin": "./cli.js",
5
5
  "description": "A framework for building native apps using React",
6
6
  "license": "MIT",
@@ -505,6 +505,44 @@ class ReactNativePodsUtils
505
505
  ])
506
506
  end
507
507
 
508
+ def self.get_privacy_manifest_paths_from(user_project)
509
+ privacy_manifests = user_project
510
+ .files
511
+ .select { |p|
512
+ p.path&.end_with?('PrivacyInfo.xcprivacy')
513
+ }
514
+ return privacy_manifests
515
+ end
516
+
517
+ def self.add_privacy_manifest_if_needed(installer)
518
+ user_project = installer.aggregate_targets
519
+ .map{ |t| t.user_project }
520
+ .first
521
+ privacy_manifest = self.get_privacy_manifest_paths_from(user_project).first
522
+ if privacy_manifest.nil?
523
+ file_timestamp_reason = {
524
+ "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryFileTimestamp",
525
+ "NSPrivacyAccessedAPITypeReasons" => ["C617.1"],
526
+ }
527
+ user_defaults_reason = {
528
+ "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryUserDefaults",
529
+ "NSPrivacyAccessedAPITypeReasons" => ["CA92.1"],
530
+ }
531
+ boot_time_reason = {
532
+ "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategorySystemBootTime",
533
+ "NSPrivacyAccessedAPITypeReasons" => ["35F9.1"],
534
+ }
535
+ privacy_manifest = {
536
+ "NSPrivacyCollectedDataTypes" => [],
537
+ "NSPrivacyTracking" => false,
538
+ "NSPrivacyAccessedAPITypes" => [file_timestamp_reason, user_defaults_reason, boot_time_reason]
539
+ }
540
+ path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy")
541
+ Xcodeproj::Plist.write_to_path(privacy_manifest, path)
542
+ Pod::UI.puts "Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/.../privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red
543
+ end
544
+ end
545
+
508
546
  def self.react_native_pods
509
547
  return [
510
548
  "DoubleConversion",
@@ -249,6 +249,7 @@ def react_native_post_install(
249
249
  ReactNativePodsUtils.apply_xcode_15_patch(installer)
250
250
  ReactNativePodsUtils.updateIphoneOSDeploymentTarget(installer)
251
251
  ReactNativePodsUtils.fix_flipper_for_xcode_15_3(installer)
252
+ ReactNativePodsUtils.add_privacy_manifest_if_needed(installer)
252
253
 
253
254
  NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer)
254
255
  is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == "1"
@@ -1 +1 @@
1
- hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
1
+ hermes-2024-04-29-RNv0.72.14-3815fec63d1a6667ca3195160d6e12fee6a0d8d5
Binary file
Binary file
Binary file
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>NSPrivacyCollectedDataTypes</key>
6
+ <array>
7
+ </array>
8
+ <key>NSPrivacyAccessedAPITypes</key>
9
+ <array>
10
+ <dict>
11
+ <key>NSPrivacyAccessedAPIType</key>
12
+ <string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
13
+ <key>NSPrivacyAccessedAPITypeReasons</key>
14
+ <array>
15
+ <string>C617.1</string>
16
+ </array>
17
+ </dict>
18
+ <dict>
19
+ <key>NSPrivacyAccessedAPIType</key>
20
+ <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
21
+ <key>NSPrivacyAccessedAPITypeReasons</key>
22
+ <array>
23
+ <string>CA92.1</string>
24
+ </array>
25
+ </dict>
26
+ <dict>
27
+ <key>NSPrivacyAccessedAPIType</key>
28
+ <string>NSPrivacyAccessedAPICategorySystemBootTime</string>
29
+ <key>NSPrivacyAccessedAPITypeReasons</key>
30
+ <array>
31
+ <string>35F9.1</string>
32
+ </array>
33
+ </dict>
34
+ </array>
35
+ <key>NSPrivacyTracking</key>
36
+ <false/>
37
+ </dict>
38
+ </plist>
@@ -12,6 +12,7 @@
12
12
  13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13
13
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
14
14
  13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15
+ 6132EF182BDFF13200BBE14D /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */; };
15
16
  7699B88040F8A987B510C191 /* libPods-HelloWorld-HelloWorldTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-HelloWorld-HelloWorldTests.a */; };
16
17
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
17
18
  /* End PBXBuildFile section */
@@ -41,6 +42,7 @@
41
42
  5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.release.xcconfig"; sourceTree = "<group>"; };
42
43
  5B7EB9410499542E8C5724F5 /* Pods-HelloWorld-HelloWorldTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld-HelloWorldTests.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld-HelloWorldTests/Pods-HelloWorld-HelloWorldTests.debug.xcconfig"; sourceTree = "<group>"; };
43
44
  5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld.a"; sourceTree = BUILT_PRODUCTS_DIR; };
45
+ 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
44
46
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HelloWorld/LaunchScreen.storyboard; sourceTree = "<group>"; };
45
47
  89C6BE57DB24E9ADA2F236DE /* Pods-HelloWorld-HelloWorldTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld-HelloWorldTests.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld-HelloWorldTests/Pods-HelloWorld-HelloWorldTests.release.xcconfig"; sourceTree = "<group>"; };
46
48
  ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
@@ -116,6 +118,7 @@
116
118
  83CBB9F61A601CBA00E9B192 = {
117
119
  isa = PBXGroup;
118
120
  children = (
121
+ 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */,
119
122
  13B07FAE1A68108700A75B9A /* HelloWorld */,
120
123
  832341AE1AAA6A7D00B99B32 /* Libraries */,
121
124
  00E356EF1AD99517003FC87E /* HelloWorldTests */,
@@ -242,6 +245,7 @@
242
245
  isa = PBXResourcesBuildPhase;
243
246
  buildActionMask = 2147483647;
244
247
  files = (
248
+ 6132EF182BDFF13200BBE14D /* PrivacyInfo.xcprivacy in Resources */,
245
249
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
246
250
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
247
251
  );
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "react": "18.2.0",
14
- "react-native": "0.72.12"
14
+ "react-native": "0.72.14"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@babel/core": "^7.20.0",