react-native 0.72.12 → 0.72.13
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/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +6 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/package.json +1 -1
- package/scripts/cocoapods/utils.rb +38 -0
- package/scripts/react_native_pods.rb +1 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/template/package.json +1 -1
package/React/Base/RCTVersion.m
CHANGED
|
@@ -175,7 +175,7 @@ public class UIImplementation {
|
|
|
175
175
|
*
|
|
176
176
|
* @return The num of root view
|
|
177
177
|
*/
|
|
178
|
-
|
|
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
|
-
|
|
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
|
}
|
package/package.json
CHANGED
|
@@ -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"
|
|
Binary file
|
|
Binary file
|