react-native-tvos 0.74.3-0 → 0.74.5-0

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 (77) hide show
  1. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -2
  2. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/Libraries/Image/RCTImageLoader.mm +2 -6
  5. package/Libraries/Image/React-RCTImage.podspec +1 -1
  6. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  7. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  8. package/Libraries/Network/RCTNetworkTask.mm +4 -3
  9. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  10. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  11. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  12. package/Libraries/Text/React-RCTText.podspec +1 -1
  13. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -13
  14. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  15. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  16. package/README.md +2 -0
  17. package/React/Base/RCTVersion.m +1 -1
  18. package/React/CoreModules/React-CoreModules.podspec +1 -1
  19. package/React/React-RCTFabric.podspec +1 -1
  20. package/React/Views/RCTComponentData.m +11 -3
  21. package/React-Core.podspec +1 -1
  22. package/ReactAndroid/api/ReactAndroid.api +0 -9
  23. package/ReactAndroid/gradle.properties +1 -1
  24. package/ReactAndroid/publish.gradle +56 -39
  25. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.java +23 -0
  26. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  27. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +9 -0
  28. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +1 -1
  29. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +0 -5
  30. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  31. package/ReactCommon/React-Fabric.podspec +1 -1
  32. package/ReactCommon/React-FabricImage.podspec +1 -1
  33. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  34. package/ReactCommon/React-nativeconfig.podspec +1 -1
  35. package/ReactCommon/React-rncore.podspec +1 -1
  36. package/ReactCommon/ReactCommon.podspec +1 -1
  37. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  38. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  39. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  40. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  41. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  42. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  43. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  44. package/ReactCommon/react/debug/React-debug.podspec +1 -1
  45. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  46. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  47. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  48. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +4 -3
  49. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  50. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  51. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  52. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
  53. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  54. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  55. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -1
  56. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  57. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  58. package/package.json +9 -9
  59. package/scripts/cocoapods/helpers.rb +4 -0
  60. package/scripts/cocoapods/new_architecture.rb +10 -23
  61. package/scripts/cocoapods/privacy_manifest_utils.rb +11 -5
  62. package/scripts/cocoapods/utils.rb +12 -1
  63. package/scripts/react_native_pods.rb +4 -0
  64. package/scripts/react_native_pods_utils/script_phases.sh +1 -1
  65. package/sdks/hermes-engine/hermes-engine.podspec +2 -1
  66. package/sdks/hermes-engine/utils/build-apple-framework.sh +11 -14
  67. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +11 -5
  68. package/sdks/hermes-engine/utils/build-ios-framework.sh +17 -8
  69. package/sdks/hermes-engine/utils/create-dummy-hermes-xcframework.sh +1 -1
  70. package/sdks/hermesc/osx-bin/hermes +0 -0
  71. package/sdks/hermesc/osx-bin/hermesc +0 -0
  72. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  73. package/template/package.json +5 -5
  74. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  75. package/third-party-podspecs/fmt.podspec +1 -1
  76. package/types/public/ReactNativeTVTypes.d.ts +4 -0
  77. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java +0 -70
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
37
37
  s.pod_target_xcconfig = {
38
38
  "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers\"",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
40
40
  }
41
41
  s.header_dir = "cxxreact"
42
42
 
@@ -17,7 +17,7 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 74;
20
- int32_t Patch = 3;
20
+ int32_t Patch = 5;
21
21
  std::string_view Prerelease = "0";
22
22
  } ReactNativeVersion;
23
23
 
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
37
37
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
38
38
  s.pod_target_xcconfig = {
39
39
  "HEADER_SEARCH_PATHS" => "\"${PODS_ROOT}/hermes-engine/destroot/include\" \"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
40
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
40
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
41
41
  }
42
42
  s.header_dir = "reacthermes"
43
43
  s.dependency "React-cxxreact", version
@@ -29,7 +29,7 @@ Pod::Spec.new do |s|
29
29
  s.header_dir = "."
30
30
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\"",
31
31
  "USE_HEADERMAP" => "YES",
32
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
32
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
33
33
  "GCC_WARN_PEDANTIC" => "YES" }
34
34
 
35
35
  if ENV['USE_FRAMEWORKS']
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.source_files = "JsErrorHandler.{cpp,h}"
37
37
  s.pod_target_xcconfig = {
38
38
  "USE_HEADERMAP" => "YES",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
40
40
  }
41
41
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
42
42
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source_files = "jsireact/*.{cpp,h}"
34
34
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
35
35
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
36
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
36
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
37
37
  s.header_dir = "jsireact"
38
38
 
39
39
  s.dependency "React-cxxreact", version
@@ -38,7 +38,7 @@ Pod::Spec.new do |s|
38
38
  s.compiler_flags = folly_compiler_flags
39
39
  s.pod_target_xcconfig = {
40
40
  "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
41
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
41
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
42
42
  "DEFINES_MODULE" => "YES"
43
43
  }.merge!(use_frameworks ? {
44
44
  "PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}"
@@ -27,7 +27,7 @@ Pod::Spec.new do |s|
27
27
  s.source = source
28
28
  s.source_files = "**/*.{cpp,h}"
29
29
  s.header_dir = "react/debug"
30
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
30
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
31
31
  "DEFINES_MODULE" => "YES" }
32
32
 
33
33
  if ENV['USE_FRAMEWORKS']
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/featureflags"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
37
37
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/Headers/Private/React-Core\"",
38
38
  "USE_HEADERMAP" => "YES",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
40
40
  "GCC_WARN_PEDANTIC" => "YES" }
41
41
  if ENV['USE_FRAMEWORKS']
42
42
  s.header_mappings_dir = './'
@@ -47,7 +47,7 @@ Pod::Spec.new do |s|
47
47
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
48
48
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths,
49
49
  "USE_HEADERMAP" => "YES",
50
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
50
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
51
51
  "GCC_WARN_PEDANTIC" => "YES" }
52
52
  if ENV['USE_FRAMEWORKS']
53
53
  s.header_mappings_dir = './'
@@ -125,9 +125,10 @@ static const std::shared_ptr<void> constructCoordinator(
125
125
  bridgeModuleDecorator = unwrapManagedObject(optionalModuleDecorator.value());
126
126
  }
127
127
 
128
- RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:viewManagerClass
129
- bridge:bridge
130
- eventDispatcher:eventDispatcher];
128
+ RCTComponentData *componentData =
129
+ [[RCTComponentData alloc] initWithManagerClass:viewManagerClass
130
+ bridge:bridge != nil ? bridge : (RCTBridge *)bridgeProxy
131
+ eventDispatcher:eventDispatcher];
131
132
  return wrapManagedObject([[RCTLegacyViewManagerInteropCoordinator alloc]
132
133
  initWithComponentData:componentData
133
134
  bridge:bridge
@@ -45,7 +45,7 @@ Pod::Spec.new do |s|
45
45
  s.header_dir = "react/renderer/debug"
46
46
  s.exclude_files = "tests"
47
47
  s.pod_target_xcconfig = {
48
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
48
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
49
49
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
50
50
  "DEFINES_MODULE" => "YES"
51
51
  }
@@ -57,7 +57,7 @@ Pod::Spec.new do |s|
57
57
  s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
58
58
  "HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
59
59
  "DEFINES_MODULE" => "YES",
60
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
60
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
61
61
 
62
62
  s.dependency "glog"
63
63
  s.dependency "RCT-Folly/Fabric", folly_version
@@ -50,7 +50,7 @@ Pod::Spec.new do |s|
50
50
  s.pod_target_xcconfig = {
51
51
  "USE_HEADERMAP" => "NO",
52
52
  "HEADER_SEARCH_PATHS" => header_search_paths,
53
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
53
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
54
54
  "DEFINES_MODULE" => "YES",
55
55
  }
56
56
 
@@ -43,7 +43,7 @@ Pod::Spec.new do |s|
43
43
  s.header_dir = "react/renderer/runtimescheduler"
44
44
  s.exclude_files = "tests"
45
45
  s.pod_target_xcconfig = {
46
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
46
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
47
47
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
48
48
 
49
49
  if ENV['USE_FRAMEWORKS']
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
37
37
  s.header_dir = "react/runtime"
38
38
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/React-Core\" \"${PODS_TARGET_SRCROOT}/../..\"",
39
39
  "USE_HEADERMAP" => "YES",
40
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
40
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
41
41
  "GCC_WARN_PEDANTIC" => "YES" }
42
42
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
43
43
 
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
35
35
  s.header_dir = "react/runtime/hermes"
36
36
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\" \"${PODS_TARGET_SRCROOT}/../../hermes/executor\" \"$(PODS_ROOT)/boost\"",
37
37
  "USE_HEADERMAP" => "YES",
38
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
38
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "GCC_WARN_PEDANTIC" => "YES" }
40
40
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
41
41
 
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
42
42
  s.header_dir = "ReactCommon"
43
43
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths,
44
44
  "USE_HEADERMAP" => "YES",
45
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
45
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
46
46
  "GCC_WARN_PEDANTIC" => "YES" }
47
47
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
48
48
 
@@ -39,7 +39,7 @@ Pod::Spec.new do |s|
39
39
  s.compiler_flags = folly_compiler_flags
40
40
  s.header_dir = "react/utils"
41
41
  s.exclude_files = "tests"
42
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
42
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
43
43
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
44
44
  "DEFINES_MODULE" => "YES" }
45
45
 
@@ -32,5 +32,5 @@ Pod::Spec.new do |s|
32
32
  s.source = source
33
33
  s.source_files = "**/*.{cpp,h}"
34
34
  s.header_dir = "reactperflogger"
35
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
35
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
36
36
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-tvos",
3
- "version": "0.74.3-0",
3
+ "version": "0.74.5-0",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -111,13 +111,13 @@
111
111
  "@react-native-community/cli": "13.6.9",
112
112
  "@react-native-community/cli-platform-android": "13.6.9",
113
113
  "@react-native-community/cli-platform-ios": "13.6.9",
114
- "@react-native/assets-registry": "0.74.85",
115
- "@react-native/codegen": "0.74.85",
116
- "@react-native/community-cli-plugin": "0.74.85",
117
- "@react-native/gradle-plugin": "0.74.85",
118
- "@react-native/js-polyfills": "0.74.85",
119
- "@react-native/normalize-colors": "0.74.85",
120
- "@react-native-tvos/virtualized-lists": "0.74.3-0",
114
+ "@react-native/assets-registry": "0.74.87",
115
+ "@react-native/codegen": "0.74.87",
116
+ "@react-native/community-cli-plugin": "0.74.87",
117
+ "@react-native/gradle-plugin": "0.74.87",
118
+ "@react-native/js-polyfills": "0.74.87",
119
+ "@react-native/normalize-colors": "0.74.87",
120
+ "@react-native-tvos/virtualized-lists": "0.74.5-0",
121
121
  "abort-controller": "^3.0.0",
122
122
  "anser": "^1.4.9",
123
123
  "ansi-regex": "^5.0.0",
@@ -164,6 +164,6 @@
164
164
  ]
165
165
  },
166
166
  "devDependencies": {
167
- "react-native-core": "npm:react-native@0.74.3"
167
+ "react-native-core": "npm:react-native@0.74.5"
168
168
  }
169
169
  }
@@ -51,5 +51,9 @@ module Helpers
51
51
  :compiler_flags => '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32'
52
52
  }
53
53
  end
54
+
55
+ def self.cxx_language_standard
56
+ return "c++20"
57
+ end
54
58
  end
55
59
  end
@@ -9,34 +9,21 @@ require_relative "./utils.rb"
9
9
  require_relative "./helpers.rb"
10
10
 
11
11
  class NewArchitectureHelper
12
- @@cplusplus_version = "c++20"
13
-
14
12
  @@NewArchWarningEmitted = false # Used not to spam warnings to the user.
15
13
 
16
14
  def self.set_clang_cxx_language_standard_if_needed(installer)
17
- language_standard = nil
18
-
19
- installer.pods_project.targets.each do |target|
20
- # The React-Core pod may have a suffix added by Cocoapods, so we test whether 'React-Core' is a substring, and do not require exact match
21
- if target.name.include? 'React-Core'
22
- language_standard = target.resolved_build_setting("CLANG_CXX_LANGUAGE_STANDARD", resolve_against_xcconfig: true).values[0]
23
- end
24
- end
15
+ projects = installer.aggregate_targets
16
+ .map{ |t| t.user_project }
17
+ .uniq{ |p| p.path }
25
18
 
26
- unless language_standard.nil?
27
- projects = installer.aggregate_targets
28
- .map{ |t| t.user_project }
29
- .uniq{ |p| p.path }
19
+ projects.each do |project|
20
+ Pod::UI.puts("Setting CLANG_CXX_LANGUAGE_STANDARD to #{ Helpers::Constants::cxx_language_standard } on #{ project.path }")
30
21
 
31
- projects.each do |project|
32
- Pod::UI.puts("Setting CLANG_CXX_LANGUAGE_STANDARD to #{ language_standard } on #{ project.path }")
33
-
34
- project.build_configurations.each do |config|
35
- config.build_settings["CLANG_CXX_LANGUAGE_STANDARD"] = language_standard
36
- end
37
-
38
- project.save()
22
+ project.build_configurations.each do |config|
23
+ config.build_settings["CLANG_CXX_LANGUAGE_STANDARD"] = Helpers::Constants::cxx_language_standard
39
24
  end
25
+
26
+ project.save()
40
27
  end
41
28
  end
42
29
 
@@ -103,7 +90,7 @@ class NewArchitectureHelper
103
90
  current_config["HEADER_SEARCH_PATHS"] = current_headers.empty? ?
104
91
  header_search_paths_string :
105
92
  "#{current_headers} #{header_search_paths_string}"
106
- current_config["CLANG_CXX_LANGUAGE_STANDARD"] = @@cplusplus_version
93
+ current_config["CLANG_CXX_LANGUAGE_STANDARD"] = Helpers::Constants::cxx_language_standard
107
94
 
108
95
 
109
96
  spec.dependency "React-Core"
@@ -50,7 +50,7 @@ module PrivacyManifestUtils
50
50
  end
51
51
 
52
52
  def self.get_application_targets(user_project)
53
- return user_project.targets.filter { |t| t.symbol_type == :application }
53
+ return user_project.targets.filter { |t| t.respond_to?(:symbol_type) && t.symbol_type == :application }
54
54
  end
55
55
 
56
56
  def self.read_privacyinfo_file(file_path)
@@ -67,7 +67,7 @@ module PrivacyManifestUtils
67
67
  end
68
68
 
69
69
  def self.ensure_reference(file_path, user_project, target)
70
- reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref.path&.end_with? "PrivacyInfo.xcprivacy" }
70
+ reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref&.path&.end_with? "PrivacyInfo.xcprivacy" }
71
71
  unless reference_exists
72
72
  # We try to find the main group, but if it doesn't exist, we default to adding the file to the project root – both work
73
73
  file_root = user_project.root_object.main_group.children.find { |group|
@@ -79,8 +79,11 @@ module PrivacyManifestUtils
79
79
  end
80
80
 
81
81
  def self.get_privacyinfo_file_path(user_project, targets)
82
+
82
83
  file_refs = targets.flat_map { |target| target.resources_build_phase.files_references }
83
- existing_file = file_refs.find { |file_ref| file_ref.path&.end_with? "PrivacyInfo.xcprivacy" }
84
+ existing_file = file_refs.find { |file_ref| file_ref&.path&.end_with?("PrivacyInfo.xcprivacy") }
85
+
86
+
84
87
  if existing_file
85
88
  return existing_file.real_path
86
89
  end
@@ -89,7 +92,9 @@ module PrivacyManifestUtils
89
92
  info_plist_path = user_project.files.find { |file_ref| file_ref.name == "Info.plist" }
90
93
  if info_plist_path.nil?
91
94
  # return path that is sibling to .xcodeproj
95
+
92
96
  path = user_project.path
97
+
93
98
  return File.join(File.dirname(path), "PrivacyInfo.xcprivacy")
94
99
  end
95
100
  return File.join(File.dirname(info_plist_path.real_path),"PrivacyInfo.xcprivacy")
@@ -120,6 +125,7 @@ module PrivacyManifestUtils
120
125
  end
121
126
  end
122
127
  end
128
+
123
129
  return used_apis
124
130
  end
125
131
 
@@ -127,7 +133,7 @@ module PrivacyManifestUtils
127
133
  privacy_manifests = user_project
128
134
  .files
129
135
  .select { |p|
130
- p.path&.end_with?('PrivacyInfo.xcprivacy')
136
+ p&.path&.end_with?('PrivacyInfo.xcprivacy')
131
137
  }
132
138
  return privacy_manifests
133
139
  end
@@ -165,7 +171,7 @@ module PrivacyManifestUtils
165
171
  "NSPrivacyTracking" => false,
166
172
  "NSPrivacyAccessedAPITypes" => get_core_accessed_apis
167
173
  }
168
- path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy")
174
+ path = File.join(user_project&.path.parent, "PrivacyInfo.xcprivacy")
169
175
  Xcodeproj::Plist.write_to_path(privacy_manifest, path)
170
176
  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/documentation/bundleresources/privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red
171
177
  end
@@ -244,7 +244,18 @@ class ReactNativePodsUtils
244
244
  end
245
245
 
246
246
  if !file_manager.exist?("#{file_path}.local")
247
- node_binary = `command -v node`
247
+ # When installing pods with a yarn alias, yarn creates a fake yarn and node executables
248
+ # in a temporary folder.
249
+ # Using `type -a` we are able to retrieve all the paths of an executable and we can
250
+ # exclude the temporary ones.
251
+ # see https://github.com/facebook/react-native/issues/43285 for more info
252
+ node_binary = `type -a node`.split("\n").map { |path|
253
+ path.gsub!("node is ", "")
254
+ }.select { |b|
255
+ return !b.start_with?("/var")
256
+ }
257
+
258
+ node_binary = node_binary[0]
248
259
  system("echo 'export NODE_BINARY=#{node_binary}' > #{file_path}.local")
249
260
  end
250
261
  end
@@ -267,6 +267,10 @@ def get_folly_config()
267
267
  return Helpers::Constants.folly_config
268
268
  end
269
269
 
270
+ def rct_cxx_language_standard()
271
+ return Helpers::Constants.cxx_language_standard
272
+ end
273
+
270
274
  # Function that executes after React Native has been installed to configure some flags and build settings.
271
275
  #
272
276
  # Parameters
@@ -104,7 +104,7 @@ moveOutputs () {
104
104
  mkdir -p "$RCT_SCRIPT_OUTPUT_DIR"
105
105
 
106
106
  # Copy all output to output_dir
107
- cp -R -X "$TEMP_OUTPUT_DIR/." "$RCT_SCRIPT_OUTPUT_DIR" || exit 1
107
+ /bin/cp -R -X "$TEMP_OUTPUT_DIR/." "$RCT_SCRIPT_OUTPUT_DIR" || exit 1
108
108
  echo "$LIBRARY_NAME output has been written to $RCT_SCRIPT_OUTPUT_DIR:" >> "${SCRIPT_OUTPUT_FILE_0}" 2>&1
109
109
  ls -1 "$RCT_SCRIPT_OUTPUT_DIR" >> "${SCRIPT_OUTPUT_FILE_0}" 2>&1
110
110
  }
@@ -24,7 +24,7 @@ Pod::Spec.new do |spec|
24
24
  spec.license = package['license']
25
25
  spec.author = "Facebook"
26
26
  spec.source = source
27
- spec.platforms = { :osx => "10.13", :ios => "13.4", :tvos => "13.4" }
27
+ spec.platforms = { :osx => "10.13", :ios => "13.4", :tvos => "13.4", :visionos => "1.0" }
28
28
 
29
29
  spec.preserve_paths = '**/*.*'
30
30
  spec.source_files = ''
@@ -46,6 +46,7 @@ Pod::Spec.new do |spec|
46
46
  ss.header_mappings_dir = "destroot/include"
47
47
  ss.ios.vendored_frameworks = "destroot/Library/Frameworks/universal/hermes.xcframework"
48
48
  ss.tvos.vendored_frameworks = "destroot/Library/Frameworks/universal/hermes.xcframework"
49
+ ss.visionos.vendored_frameworks = "destroot/Library/Frameworks/universal/hermes.xcframework"
49
50
  ss.osx.vendored_frameworks = "destroot/Library/Frameworks/macosx/hermes.framework"
50
51
  end
51
52
 
@@ -17,6 +17,8 @@ REACT_NATIVE_PATH=${REACT_NATIVE_PATH:-$CURR_SCRIPT_DIR/../../..}
17
17
 
18
18
  NUM_CORES=$(sysctl -n hw.ncpu)
19
19
 
20
+ PLATFORMS=("macosx" "iphoneos" "iphonesimulator" "catalyst" "xros" "xrsimulator" "appletvos" "appletvsimulator")
21
+
20
22
  if [[ -z "$JSI_PATH" ]]; then
21
23
  JSI_PATH="$REACT_NATIVE_PATH/ReactCommon/jsi"
22
24
  fi
@@ -41,6 +43,10 @@ function get_tvos_deployment_target {
41
43
  use_env_var_or_ruby_prop "${IOS_DEPLOYMENT_TARGET}" "deployment_target('tvos')"
42
44
  }
43
45
 
46
+ function get_visionos_deployment_target {
47
+ use_env_var_or_ruby_prop "${XROS_DEPLOYMENT_TARGET}" "deployment_target('visionos')"
48
+ }
49
+
44
50
  function get_mac_deployment_target {
45
51
  use_env_var_or_ruby_prop "${MAC_DEPLOYMENT_TARGET}" "deployment_target('osx')"
46
52
  }
@@ -164,21 +170,12 @@ function build_apple_framework {
164
170
  }
165
171
 
166
172
  function prepare_dest_root_for_ci {
173
+ mkdir -p "destroot/bin"
174
+ for platform in "${PLATFORMS[@]}"; do
175
+ mkdir -p "destroot/Library/Frameworks/$platform"
176
+ cp -R "./build_$platform/API/hermes/hermes.framework"* "destroot/Library/Frameworks/$platform"
177
+ done
167
178
 
168
- mkdir -p "destroot/Library/Frameworks/macosx"
169
- mkdir -p "destroot/bin"
170
- mkdir -p "destroot/Library/Frameworks/iphoneos"
171
- mkdir -p "destroot/Library/Frameworks/iphonesimulator"
172
- mkdir -p "destroot/Library/Frameworks/appletvos"
173
- mkdir -p "destroot/Library/Frameworks/appletvsimulator"
174
- mkdir -p "destroot/Library/Frameworks/catalyst"
175
-
176
- cp -R "./build_macosx/API/hermes/hermes.framework"* "destroot/Library/Frameworks/macosx"
177
- cp -R "./build_iphoneos/API/hermes/hermes.framework"* "destroot/Library/Frameworks/iphoneos"
178
- cp -R "./build_iphonesimulator/API/hermes/hermes.framework"* "destroot/Library/Frameworks/iphonesimulator"
179
- cp -R "./build_appletvos/API/hermes/hermes.framework"* "destroot/Library/Frameworks/appletvos"
180
- cp -R "./build_appletvsimulator/API/hermes/hermes.framework"* "destroot/Library/Frameworks/appletvsimulator"
181
- cp -R "./build_catalyst/API/hermes/hermes.framework"* "destroot/Library/Frameworks/catalyst"
182
179
  cp "./build_macosx/bin/"* "destroot/bin"
183
180
 
184
181
  # Copy over Hermes and JSI API headers.
@@ -10,24 +10,30 @@ release_version="$1"; shift
10
10
  hermesc_path="$1"; shift
11
11
  jsi_path="$1"; shift
12
12
 
13
- # Based on platform name returns the framework copy destination. Used later by `vendored_frameworks` in Podspec.
13
+ # Based on platform name returns the framework copy destination. Used later by `vendored_frameworks` in Podspec.
14
14
  # Fallbacks to "ios" if platform is not recognized.
15
15
  function get_platform_copy_destination {
16
16
  if [[ $1 == "macosx" ]]; then
17
17
  echo "macosx"
18
18
  return
19
+ elif [[ $1 == "xros" || $1 == "xrsimulator" ]]; then
20
+ echo "xros"
21
+ return
19
22
  fi
20
-
23
+
21
24
  echo "ios"
22
25
  }
23
26
 
24
27
  function get_deployment_target {
25
28
  if [[ $1 == "macosx" ]]; then
26
- echo ${MACOSX_DEPLOYMENT_TARGET}
29
+ echo "${MACOSX_DEPLOYMENT_TARGET}"
30
+ return
31
+ elif [[ $1 == "xrsimulator" || $1 == "xros" ]]; then
32
+ echo "${XROS_DEPLOYMENT_TARGET}"
27
33
  return
28
34
  fi
29
-
30
- echo ${IPHONEOS_DEPLOYMENT_TARGET}
35
+
36
+ echo "${IPHONEOS_DEPLOYMENT_TARGET}"
31
37
  }
32
38
 
33
39
  enable_debugger="false"
@@ -10,9 +10,9 @@ fi
10
10
  set -e
11
11
 
12
12
  # Given a specific target, retrieve the right architecture for it
13
- # $1 the target you want to build. Allowed values: iphoneos, iphonesimulator, catalyst
13
+ # $1 the target you want to build. Allowed values: iphoneos, iphonesimulator, catalyst, xros, xrsimulator
14
14
  function get_architecture {
15
- if [[ $1 == "iphoneos" ]]; then
15
+ if [[ $1 == "iphoneos" || $1 == "xros" || $1 == "xrsimulator" ]]; then
16
16
  echo "arm64"
17
17
  elif [[ $1 == "iphonesimulator" ]]; then
18
18
  echo "x86_64;arm64"
@@ -28,18 +28,25 @@ function get_architecture {
28
28
  fi
29
29
  }
30
30
 
31
+ function get_deployment_target {
32
+ if [[ $1 == "xros" || $1 == "xrsimulator" ]]; then
33
+ echo "$(get_visionos_deployment_target)"
34
+ elif [[ $1 == "appletvos" || $1 == "appletvsimulator" ]]; then
35
+ echo "$(get_tvos_deployment_target)"
36
+ else
37
+ echo "$(get_ios_deployment_target)"
38
+ fi
39
+ }
40
+
31
41
  # build a single framework
32
42
  # $1 is the target to build
33
43
  function build_framework {
34
44
  if [ ! -d destroot/Library/Frameworks/universal/hermes.xcframework ]; then
35
- ios_deployment_target=$(get_ios_deployment_target)
36
- if [[ "$1" == "appletvos" || "$1" == "appletvsimulator" ]]; then
37
- ios_deployment_target=$(get_tvos_deployment_target)
38
- fi
45
+ deployment_target=$(get_deployment_target "$1")
39
46
 
40
47
  architecture=$(get_architecture "$1")
41
48
 
42
- build_apple_framework "$1" "$architecture" "$ios_deployment_target"
49
+ build_apple_framework "$1" "$architecture" "$deployment_target"
43
50
  else
44
51
  echo "Skipping; Clean \"destroot\" to rebuild".
45
52
  fi
@@ -48,7 +55,7 @@ function build_framework {
48
55
  # group the frameworks together to create a universal framework
49
56
  function build_universal_framework {
50
57
  if [ ! -d destroot/Library/Frameworks/universal/hermes.xcframework ]; then
51
- create_universal_framework "iphoneos" "iphonesimulator" "appletvos" "appletvsimulator" "catalyst"
58
+ create_universal_framework "iphoneos" "iphonesimulator" "appletvos" "appletvsimulator" "catalyst" "xros" "xrsimulator"
52
59
  else
53
60
  echo "Skipping; Clean \"destroot\" to rebuild".
54
61
  fi
@@ -65,6 +72,8 @@ function create_framework {
65
72
  build_framework "appletvos"
66
73
  build_framework "appletvsimulator"
67
74
  build_framework "catalyst"
75
+ build_framework "xros"
76
+ build_framework "xrsimulator"
68
77
 
69
78
  build_universal_framework
70
79
  else
@@ -19,7 +19,7 @@ pushd destroot/Library/Frameworks > /dev/null || exit 1
19
19
 
20
20
  echo '' > dummy.c
21
21
 
22
- platforms=( "macosx" "ios" ) # Add other platforms here if needed
22
+ platforms=( "macosx" "ios" "xros" ) # Add other platforms here if needed
23
23
 
24
24
  for platform in "${platforms[@]}"
25
25
  do
Binary file
Binary file
Binary file