react-native 0.74.0-rc.6 → 0.74.0-rc.8

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 (41) hide show
  1. package/Libraries/AppDelegate/RCTAppDelegate.mm +10 -5
  2. package/Libraries/AppDelegate/RCTRootViewFactory.h +13 -3
  3. package/Libraries/AppDelegate/RCTRootViewFactory.mm +25 -10
  4. package/Libraries/Core/ReactNativeVersion.js +1 -1
  5. package/React/Base/RCTBridgeProxy.h +6 -1
  6. package/React/Base/RCTBridgeProxy.mm +4 -2
  7. package/React/Base/RCTVersion.m +1 -1
  8. package/React/CoreModules/RCTDeviceInfo.mm +10 -13
  9. package/React/Modules/RCTUIManager.m +10 -0
  10. package/ReactAndroid/api/ReactAndroid.api +1 -0
  11. package/ReactAndroid/gradle.properties +1 -1
  12. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +5 -1
  13. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +9 -0
  14. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  15. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -7
  16. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +6 -1
  17. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  18. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  19. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +4 -1
  20. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +1 -1
  21. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  22. package/ReactCommon/react/runtime/iostests/RCTHostTests.mm +2 -1
  23. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +0 -2
  24. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +10 -1
  25. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +32 -9
  26. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +2 -1
  27. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +5 -12
  28. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h +1 -1
  29. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +3 -2
  30. package/ReactCommon/yoga/Yoga.podspec +4 -1
  31. package/package.json +8 -8
  32. package/scripts/cocoapods/utils.rb +1 -1
  33. package/sdks/hermes-engine/utils/build-apple-framework.sh +0 -2
  34. package/sdks/hermes-engine/utils/build-ios-framework.sh +4 -1
  35. package/sdks/hermes-engine/utils/build-mac-framework.sh +4 -1
  36. package/sdks/hermesc/osx-bin/hermes +0 -0
  37. package/sdks/hermesc/osx-bin/hermesc +0 -0
  38. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  39. package/template/ios/HelloWorld/PrivacyInfo.xcprivacy +38 -0
  40. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  41. package/template/package.json +5 -5
@@ -233,13 +233,18 @@
233
233
 
234
234
  - (RCTRootViewFactory *)createRCTRootViewFactory
235
235
  {
236
+ __weak __typeof(self) weakSelf = self;
237
+ RCTBundleURLBlock bundleUrlBlock = ^{
238
+ RCTAppDelegate *strongSelf = weakSelf;
239
+ return strongSelf.bundleURL;
240
+ };
241
+
236
242
  RCTRootViewFactoryConfiguration *configuration =
237
- [[RCTRootViewFactoryConfiguration alloc] initWithBundleURL:self.bundleURL
238
- newArchEnabled:self.fabricEnabled
239
- turboModuleEnabled:self.turboModuleEnabled
240
- bridgelessEnabled:self.bridgelessEnabled];
243
+ [[RCTRootViewFactoryConfiguration alloc] initWithBundleURLBlock:bundleUrlBlock
244
+ newArchEnabled:self.fabricEnabled
245
+ turboModuleEnabled:self.turboModuleEnabled
246
+ bridgelessEnabled:self.bridgelessEnabled];
241
247
 
242
- __weak __typeof(self) weakSelf = self;
243
248
  configuration.createRootViewWithBridge = ^UIView *(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps)
244
249
  {
245
250
  return [weakSelf createRootViewWithBridge:bridge moduleName:moduleName initProps:initProps];
@@ -23,6 +23,11 @@ typedef UIView *_Nonnull (
23
23
  ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps);
24
24
  typedef RCTBridge *_Nonnull (
25
25
  ^RCTCreateBridgeWithDelegateBlock)(id<RCTBridgeDelegate> delegate, NSDictionary *launchOptions);
26
+ typedef NSURL *_Nullable (^RCTSourceURLForBridgeBlock)(RCTBridge *bridge);
27
+ typedef NSURL *_Nullable (^RCTBundleURLBlock)(void);
28
+ typedef NSArray<id<RCTBridgeModule>> *_Nonnull (^RCTExtraModulesForBridgeBlock)(RCTBridge *bridge);
29
+ typedef NSDictionary<NSString *, Class> *_Nonnull (^RCTExtraLazyModuleClassesForBridge)(RCTBridge *bridge);
30
+ typedef BOOL (^RCTBridgeDidNotFindModuleBlock)(RCTBridge *bridge, NSString *moduleName);
26
31
 
27
32
  #pragma mark - RCTRootViewFactory Configuration
28
33
  @interface RCTRootViewFactoryConfiguration : NSObject
@@ -37,7 +42,7 @@ typedef RCTBridge *_Nonnull (
37
42
  @property (nonatomic, assign, readonly) BOOL turboModuleEnabled;
38
43
 
39
44
  /// Return the bundle URL for the main bundle.
40
- @property (nonatomic) NSURL *bundleURL;
45
+ @property (nonatomic, nonnull) RCTBundleURLBlock bundleURLBlock;
41
46
 
42
47
  /**
43
48
  * Use this method to initialize a new instance of `RCTRootViewFactoryConfiguration` by passing a `bundleURL`
@@ -48,10 +53,15 @@ typedef RCTBridge *_Nonnull (
48
53
  * pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`.
49
54
  *
50
55
  */
56
+ - (instancetype)initWithBundleURLBlock:(RCTBundleURLBlock)bundleURLBlock
57
+ newArchEnabled:(BOOL)newArchEnabled
58
+ turboModuleEnabled:(BOOL)turboModuleEnabled
59
+ bridgelessEnabled:(BOOL)bridgelessEnabled NS_DESIGNATED_INITIALIZER;
60
+
51
61
  - (instancetype)initWithBundleURL:(NSURL *)bundleURL
52
62
  newArchEnabled:(BOOL)newArchEnabled
53
63
  turboModuleEnabled:(BOOL)turboModuleEnabled
54
- bridgelessEnabled:(BOOL)bridgelessEnabled;
64
+ bridgelessEnabled:(BOOL)bridgelessEnabled __deprecated;
55
65
 
56
66
  /**
57
67
  * Block that allows to override logic of creating root view instance.
@@ -107,7 +117,7 @@ typedef RCTBridge *_Nonnull (
107
117
  *
108
118
  * @parameter: moduleName - the name of the app, used by Metro to resolve the module.
109
119
  * @parameter: initialProperties - a set of initial properties.
110
- * @parameter: moduleName - a dictionary with a set of options.
120
+ * @parameter: launchOptions - a dictionary with a set of options.
111
121
  */
112
122
  - (UIView *_Nonnull)viewWithModuleName:(NSString *)moduleName
113
123
  initialProperties:(NSDictionary *__nullable)initialProperties
@@ -57,9 +57,23 @@ static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabri
57
57
  newArchEnabled:(BOOL)newArchEnabled
58
58
  turboModuleEnabled:(BOOL)turboModuleEnabled
59
59
  bridgelessEnabled:(BOOL)bridgelessEnabled
60
+ {
61
+ return [self
62
+ initWithBundleURLBlock:^{
63
+ return bundleURL;
64
+ }
65
+ newArchEnabled:newArchEnabled
66
+ turboModuleEnabled:turboModuleEnabled
67
+ bridgelessEnabled:bridgelessEnabled];
68
+ }
69
+
70
+ - (instancetype)initWithBundleURLBlock:(RCTBundleURLBlock)bundleURLBlock
71
+ newArchEnabled:(BOOL)newArchEnabled
72
+ turboModuleEnabled:(BOOL)turboModuleEnabled
73
+ bridgelessEnabled:(BOOL)bridgelessEnabled
60
74
  {
61
75
  if (self = [super init]) {
62
- _bundleURL = bundleURL;
76
+ _bundleURLBlock = bundleURLBlock;
63
77
  _fabricEnabled = newArchEnabled;
64
78
  _turboModuleEnabled = turboModuleEnabled;
65
79
  _bridgelessEnabled = bridgelessEnabled;
@@ -123,7 +137,7 @@ static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabri
123
137
  RCTEnableTurboModuleInterop(YES);
124
138
  RCTEnableTurboModuleInteropBridgeProxy(YES);
125
139
 
126
- [self createReactHostIfNeeded];
140
+ [self createReactHostIfNeeded:launchOptions];
127
141
 
128
142
  RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:moduleName initialProperties:initProps];
129
143
 
@@ -206,19 +220,20 @@ static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabri
206
220
 
207
221
  #pragma mark - New Arch Utilities
208
222
 
209
- - (void)createReactHostIfNeeded
223
+ - (void)createReactHostIfNeeded:(NSDictionary *)launchOptions
210
224
  {
211
225
  if (_reactHost) {
212
226
  return;
213
227
  }
214
228
 
215
229
  __weak __typeof(self) weakSelf = self;
216
- _reactHost = [[RCTHost alloc] initWithBundleURL:[self bundleURL]
217
- hostDelegate:nil
218
- turboModuleManagerDelegate:_turboModuleManagerDelegate
219
- jsEngineProvider:^std::shared_ptr<facebook::react::JSRuntimeFactory>() {
220
- return [weakSelf createJSRuntimeFactory];
221
- }];
230
+ _reactHost = [[RCTHost alloc] initWithBundleURLProvider:self->_configuration.bundleURLBlock
231
+ hostDelegate:nil
232
+ turboModuleManagerDelegate:_turboModuleManagerDelegate
233
+ jsEngineProvider:^std::shared_ptr<facebook::react::JSRuntimeFactory>() {
234
+ return [weakSelf createJSRuntimeFactory];
235
+ }
236
+ launchOptions:launchOptions];
222
237
  [_reactHost setBundleURLProvider:^NSURL *() {
223
238
  return [weakSelf bundleURL];
224
239
  }];
@@ -247,7 +262,7 @@ static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabri
247
262
 
248
263
  - (NSURL *)bundleURL
249
264
  {
250
- return self->_configuration.bundleURL;
265
+ return self->_configuration.bundleURLBlock();
251
266
  }
252
267
 
253
268
  @end
@@ -17,7 +17,7 @@ const version: $ReadOnly<{
17
17
  major: 0,
18
18
  minor: 74,
19
19
  patch: 0,
20
- prerelease: 'rc.6',
20
+ prerelease: 'rc.8',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -9,6 +9,8 @@
9
9
 
10
10
  #import "RCTBridgeModule.h"
11
11
 
12
+ NS_ASSUME_NONNULL_BEGIN
13
+
12
14
  @class RCTBundleManager;
13
15
  @class RCTCallableJSModules;
14
16
  @class RCTModuleRegistry;
@@ -22,7 +24,8 @@
22
24
  callableJSModules:(RCTCallableJSModules *)callableJSModules
23
25
  dispatchToJSThread:(void (^)(dispatch_block_t))dispatchToJSThread
24
26
  registerSegmentWithId:(void (^)(NSNumber *, NSString *))registerSegmentWithId
25
- runtime:(void *)runtime NS_DESIGNATED_INITIALIZER;
27
+ runtime:(void *)runtime
28
+ launchOptions:(nullable NSDictionary *)launchOptions NS_DESIGNATED_INITIALIZER;
26
29
 
27
30
  - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel;
28
31
  - (void)forwardInvocation:(NSInvocation *)invocation;
@@ -37,3 +40,5 @@
37
40
  - (id)moduleForName:(NSString *)moduleName lazilyLoadIfNecessary:(BOOL)lazilyLoad;
38
41
 
39
42
  @end
43
+
44
+ NS_ASSUME_NONNULL_END
@@ -35,6 +35,7 @@ using namespace facebook;
35
35
  RCTModuleRegistry *_moduleRegistry;
36
36
  RCTBundleManager *_bundleManager;
37
37
  RCTCallableJSModules *_callableJSModules;
38
+ NSDictionary *_launchOptions;
38
39
  void (^_dispatchToJSThread)(dispatch_block_t);
39
40
  void (^_registerSegmentWithId)(NSNumber *, NSString *);
40
41
  void *_runtime;
@@ -47,6 +48,7 @@ using namespace facebook;
47
48
  dispatchToJSThread:(void (^)(dispatch_block_t))dispatchToJSThread
48
49
  registerSegmentWithId:(void (^)(NSNumber *, NSString *))registerSegmentWithId
49
50
  runtime:(void *)runtime
51
+ launchOptions:(nullable NSDictionary *)launchOptions
50
52
  {
51
53
  self = [super self];
52
54
  if (self) {
@@ -57,6 +59,7 @@ using namespace facebook;
57
59
  _dispatchToJSThread = dispatchToJSThread;
58
60
  _registerSegmentWithId = registerSegmentWithId;
59
61
  _runtime = runtime;
62
+ _launchOptions = [launchOptions copy];
60
63
  }
61
64
  return self;
62
65
  }
@@ -191,8 +194,7 @@ using namespace facebook;
191
194
 
192
195
  - (NSDictionary *)launchOptions
193
196
  {
194
- [self logError:@"This method is not supported. Returning nil." cmd:_cmd];
195
- return nil;
197
+ return _launchOptions;
196
198
  }
197
199
 
198
200
  - (BOOL)loading
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(74),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"rc.6",
27
+ RCTVersionPrerelease: @"rc.8",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -54,11 +54,6 @@ RCT_EXPORT_MODULE()
54
54
 
55
55
  _currentInterfaceOrientation = [RCTSharedApplication() statusBarOrientation];
56
56
 
57
- [[NSNotificationCenter defaultCenter] addObserver:self
58
- selector:@selector(interfaceOrientationDidChange)
59
- name:UIApplicationDidChangeStatusBarOrientationNotification
60
- object:nil];
61
-
62
57
  _currentInterfaceDimensions = [self _exportedDimensions];
63
58
 
64
59
  [[NSNotificationCenter defaultCenter] addObserver:self
@@ -75,6 +70,10 @@ RCT_EXPORT_MODULE()
75
70
  selector:@selector(interfaceFrameDidChange)
76
71
  name:RCTWindowFrameDidChangeNotification
77
72
  object:nil];
73
+ [[NSNotificationCenter defaultCenter] addObserver:self
74
+ selector:@selector(interfaceFrameDidChange)
75
+ name:UIDeviceOrientationDidChangeNotification
76
+ object:nil];
78
77
 
79
78
  // TODO T175901725 - Registering the RCTDeviceInfo module to the notification is a short-term fix to unblock 0.73
80
79
  // The actual behavior should be that the module is properly registered in the TurboModule/Bridge infrastructure
@@ -89,6 +88,9 @@ RCT_EXPORT_MODULE()
89
88
 
90
89
  - (void)invalidate
91
90
  {
91
+ if (_invalidated) {
92
+ return;
93
+ }
92
94
  _invalidated = YES;
93
95
  [self _cleanupObservers];
94
96
  }
@@ -99,20 +101,15 @@ RCT_EXPORT_MODULE()
99
101
  name:RCTAccessibilityManagerDidUpdateMultiplierNotification
100
102
  object:[_moduleRegistry moduleForName:"AccessibilityManager"]];
101
103
 
102
- [[NSNotificationCenter defaultCenter] removeObserver:self
103
- name:UIApplicationDidChangeStatusBarOrientationNotification
104
- object:nil];
105
-
106
104
  [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
107
105
 
108
106
  [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTUserInterfaceStyleDidChangeNotification object:nil];
109
107
 
110
108
  [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTWindowFrameDidChangeNotification object:nil];
111
109
 
112
- [[NSNotificationCenter defaultCenter] addObserver:self
113
- selector:@selector(invalidate)
114
- name:RCTBridgeWillInvalidateModulesNotification
115
- object:nil];
110
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTBridgeWillInvalidateModulesNotification object:nil];
111
+
112
+ [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
116
113
  }
117
114
 
118
115
  static BOOL RCTIsIPhoneNotched()
@@ -1680,6 +1680,16 @@ static UIView *_jsResponder;
1680
1680
  return self;
1681
1681
  }
1682
1682
 
1683
+ - (NSUInteger)count
1684
+ {
1685
+ return self->_registry.count;
1686
+ }
1687
+
1688
+ - (NSEnumerator *)keyEnumerator
1689
+ {
1690
+ return self->_registry.keyEnumerator;
1691
+ }
1692
+
1683
1693
  - (id)objectForKey:(id)key
1684
1694
  {
1685
1695
  if (![key isKindOfClass:[NSNumber class]]) {
@@ -4897,6 +4897,7 @@ public class com/facebook/react/uimanager/UIImplementation {
4897
4897
  public fun dispatchViewUpdates (I)V
4898
4898
  public fun findSubviewIn (IFFLcom/facebook/react/bridge/Callback;)V
4899
4899
  public fun getProfiledBatchPerfCounters ()Ljava/util/Map;
4900
+ public fun getRootViewNum ()I
4900
4901
  protected fun handleCreateView (Lcom/facebook/react/uimanager/ReactShadowNode;ILcom/facebook/react/uimanager/ReactStylesDiffMap;)V
4901
4902
  protected fun handleUpdateView (Lcom/facebook/react/uimanager/ReactShadowNode;Ljava/lang/String;Lcom/facebook/react/uimanager/ReactStylesDiffMap;)V
4902
4903
  public fun manageChildren (ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;)V
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.74.0-rc.6
1
+ VERSION_NAME=0.74.0-rc.8
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -109,7 +109,11 @@ public class ReactActivityDelegate {
109
109
  } else {
110
110
  mReactDelegate =
111
111
  new ReactDelegate(
112
- getPlainActivity(), getReactNativeHost(), mainComponentName, launchOptions) {
112
+ getPlainActivity(),
113
+ getReactNativeHost(),
114
+ mainComponentName,
115
+ launchOptions,
116
+ isFabricEnabled()) {
113
117
  @Override
114
118
  protected ReactRootView createRootView() {
115
119
  return ReactActivityDelegate.this.createRootView(launchOptions);
@@ -45,6 +45,15 @@ public class ReactDelegate {
45
45
 
46
46
  private boolean mFabricEnabled = false;
47
47
 
48
+ /**
49
+ * Do not use this constructor as it's not accounting for New Architecture at all. You should
50
+ * either use {@link ReactDelegate#ReactDelegate(Activity, ReactHost, String, Bundle)} if you're
51
+ * on bridgeless mode or {@link ReactDelegate#ReactDelegate(Activity, ReactNativeHost, String,
52
+ * Bundle, boolean)} and use the last parameter to toggle paper/fabric.
53
+ *
54
+ * @deprecated Use one of the other constructors instead to account for New Architecture.
55
+ */
56
+ @Deprecated
48
57
  public ReactDelegate(
49
58
  Activity activity,
50
59
  ReactNativeHost reactNativeHost,
@@ -18,5 +18,5 @@ public class ReactNativeVersion {
18
18
  "major", 0,
19
19
  "minor", 74,
20
20
  "patch", 0,
21
- "prerelease", "rc.6");
21
+ "prerelease", "rc.8");
22
22
  }
@@ -177,7 +177,7 @@ public class UIImplementation {
177
177
  *
178
178
  * @return The num of root view
179
179
  */
180
- private int getRootViewNum() {
180
+ public int getRootViewNum() {
181
181
  return mOperationsQueue.getNativeViewHierarchyManager().getRootViewNum();
182
182
  }
183
183
 
@@ -589,12 +589,6 @@ public class UIImplementation {
589
589
 
590
590
  /** Invoked at the end of the transaction to commit any updates to the node hierarchy. */
591
591
  public void dispatchViewUpdates(int batchId) {
592
- if (getRootViewNum() <= 0) {
593
- // If there are no RootViews registered, there will be no View updates to dispatch.
594
- // This is a hack to prevent this from being called when Fabric is used everywhere.
595
- // This should no longer be necessary in Bridgeless Mode.
596
- return;
597
- }
598
592
  SystraceMessage.beginSection(
599
593
  Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "UIImplementation.dispatchViewUpdates")
600
594
  .arg("batchId", batchId)
@@ -707,7 +707,12 @@ public class UIManagerModule extends ReactContextBaseJavaModule
707
707
  listener.willDispatchViewUpdates(this);
708
708
  }
709
709
  try {
710
- mUIImplementation.dispatchViewUpdates(batchId);
710
+ // If there are no RootViews registered, there will be no View updates to dispatch.
711
+ // This is a hack to prevent this from being called when Fabric is used everywhere.
712
+ // This should no longer be necessary in Bridgeless Mode.
713
+ if (mUIImplementation.getRootViewNum() > 0) {
714
+ mUIImplementation.dispatchViewUpdates(batchId);
715
+ }
711
716
  } finally {
712
717
  Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE);
713
718
  }
@@ -18,7 +18,7 @@ constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 74;
20
20
  int32_t Patch = 0;
21
- std::string_view Prerelease = "rc.6";
21
+ std::string_view Prerelease = "rc.8";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
42
42
 
43
43
  if ENV['USE_FRAMEWORKS']
44
- s.header_mappings_dir = './'
44
+ s.header_mappings_dir = '../'
45
45
  s.module_name = 'React_jserrorhandler'
46
46
  end
47
47
 
@@ -219,7 +219,10 @@ static jsi::Value convertJSErrorDetailsToJSRuntimeError(jsi::Runtime &runtime, N
219
219
  NSString *message = jsErrorDetails[@"message"];
220
220
 
221
221
  auto jsError = createJSRuntimeError(runtime, [message UTF8String]);
222
- jsError.asObject(runtime).setProperty(runtime, "cause", convertObjCObjectToJSIValue(runtime, jsErrorDetails));
222
+ for (NSString *key in jsErrorDetails) {
223
+ id value = jsErrorDetails[key];
224
+ jsError.asObject(runtime).setProperty(runtime, [key UTF8String], convertObjCObjectToJSIValue(runtime, value));
225
+ }
223
226
 
224
227
  return jsError;
225
228
  }
@@ -674,7 +674,7 @@ static Class getFallbackClassFromName(const char *name)
674
674
  */
675
675
  if (_bridge) {
676
676
  [(id)module setValue:_bridge forKey:@"bridge"];
677
- } else if (_bridgeProxy && [self _isLegacyModuleClass:[module class]]) {
677
+ } else if (_bridgeProxy) {
678
678
  [(id)module setValue:_bridgeProxy forKey:@"bridge"];
679
679
  }
680
680
  } @catch (NSException *exception) {
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
42
42
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
43
43
 
44
44
  if ENV['USE_FRAMEWORKS']
45
- s.header_mappings_dir = './'
45
+ s.header_mappings_dir = '../../'
46
46
  s.module_name = 'React_RuntimeCore'
47
47
  end
48
48
 
@@ -58,7 +58,8 @@ static ShimRCTInstance *shimmedRCTInstance;
58
58
  turboModuleManagerDelegate:OCMProtocolMock(@protocol(RCTTurboModuleManagerDelegate))
59
59
  jsEngineProvider:^std::shared_ptr<facebook::react::JSRuntimeFactory>() {
60
60
  return std::make_shared<facebook::react::RCTHermesInstance>();
61
- }];
61
+ }
62
+ launchOptions:nil];
62
63
  }
63
64
 
64
65
  - (void)tearDown
@@ -9,8 +9,6 @@
9
9
 
10
10
  #import "RCTContextContainerHandling.h"
11
11
 
12
- typedef NSURL * (^RCTHostBundleURLProvider)(void);
13
-
14
12
  @interface RCTHost (Internal)
15
13
 
16
14
  - (void)registerSegmentWithId:(NSNumber *)segmentId path:(NSString *)path;
@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
21
21
 
22
22
  @protocol RCTTurboModuleManagerDelegate;
23
23
 
24
+ typedef NSURL *_Nullable (^RCTHostBundleURLProvider)(void);
25
+
24
26
  // Runtime API
25
27
 
26
28
  @protocol RCTHostDelegate <NSObject>
@@ -45,10 +47,17 @@ typedef std::shared_ptr<facebook::react::JSRuntimeFactory> (^RCTHostJSEngineProv
45
47
 
46
48
  @interface RCTHost : NSObject
47
49
 
50
+ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider
51
+ hostDelegate:(id<RCTHostDelegate>)hostDelegate
52
+ turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate
53
+ jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider
54
+ launchOptions:(nullable NSDictionary *)launchOptions NS_DESIGNATED_INITIALIZER;
55
+
48
56
  - (instancetype)initWithBundleURL:(NSURL *)bundleURL
49
57
  hostDelegate:(id<RCTHostDelegate>)hostDelegate
50
58
  turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate
51
- jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider NS_DESIGNATED_INITIALIZER;
59
+ jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider
60
+ launchOptions:(nullable NSDictionary *)launchOptions __deprecated;
52
61
 
53
62
  @property (nonatomic, weak, nullable) id<RCTHostRuntimeDelegate> runtimeDelegate;
54
63
 
@@ -58,6 +58,8 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
58
58
  RCTHostBundleURLProvider _bundleURLProvider;
59
59
  RCTHostJSEngineProvider _jsEngineProvider;
60
60
 
61
+ NSDictionary *_launchOptions;
62
+
61
63
  // All the surfaces that need to be started after main bundle execution
62
64
  NSMutableArray<RCTFabricSurface *> *_surfaceStartBuffer;
63
65
  std::mutex _surfaceStartBufferMutex;
@@ -77,14 +79,31 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
77
79
  _RCTInitializeJSThreadConstantInternal();
78
80
  }
79
81
 
80
- /**
81
- Host initialization should not be resource intensive. A host may be created before any intention of using React Native
82
- has been expressed.
83
- */
84
82
  - (instancetype)initWithBundleURL:(NSURL *)bundleURL
85
83
  hostDelegate:(id<RCTHostDelegate>)hostDelegate
86
84
  turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate
87
85
  jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider
86
+ launchOptions:(nullable NSDictionary *)launchOptions
87
+ {
88
+ return [self
89
+ initWithBundleURLProvider:^{
90
+ return bundleURL;
91
+ }
92
+ hostDelegate:hostDelegate
93
+ turboModuleManagerDelegate:turboModuleManagerDelegate
94
+ jsEngineProvider:jsEngineProvider
95
+ launchOptions:launchOptions];
96
+ }
97
+
98
+ /**
99
+ Host initialization should not be resource intensive. A host may be created before any intention of using React Native
100
+ has been expressed.
101
+ */
102
+ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider
103
+ hostDelegate:(id<RCTHostDelegate>)hostDelegate
104
+ turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate
105
+ jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider
106
+ launchOptions:(nullable NSDictionary *)launchOptions
88
107
  {
89
108
  if (self = [super init]) {
90
109
  _hostDelegate = hostDelegate;
@@ -93,9 +112,9 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
93
112
  _bundleManager = [RCTBundleManager new];
94
113
  _moduleRegistry = [RCTModuleRegistry new];
95
114
  _jsEngineProvider = [jsEngineProvider copy];
115
+ _launchOptions = [launchOptions copy];
96
116
 
97
117
  __weak RCTHost *weakSelf = self;
98
-
99
118
  auto bundleURLGetter = ^NSURL *()
100
119
  {
101
120
  RCTHost *strongSelf = weakSelf;
@@ -107,7 +126,7 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
107
126
  };
108
127
 
109
128
  auto bundleURLSetter = ^(NSURL *bundleURL_) {
110
- [weakSelf _setBundleURL:bundleURL];
129
+ [weakSelf _setBundleURL:bundleURL_];
111
130
  };
112
131
 
113
132
  auto defaultBundleURLGetter = ^NSURL *()
@@ -120,7 +139,6 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
120
139
  return strongSelf->_bundleURLProvider();
121
140
  };
122
141
 
123
- [self _setBundleURL:bundleURL];
124
142
  [_bundleManager setBridgelessBundleURLGetter:bundleURLGetter
125
143
  andSetter:bundleURLSetter
126
144
  andDefaultGetter:defaultBundleURLGetter];
@@ -166,6 +184,9 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
166
184
 
167
185
  - (void)start
168
186
  {
187
+ if (_bundleURLProvider) {
188
+ [self _setBundleURL:_bundleURLProvider()];
189
+ }
169
190
  auto &inspectorFlags = jsinspector_modern::InspectorFlags::getInstance();
170
191
  if (inspectorFlags.getEnableModernCDPRegistry() && !_inspectorPageId.has_value()) {
171
192
  _inspectorTarget =
@@ -204,7 +225,8 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
204
225
  turboModuleManagerDelegate:_turboModuleManagerDelegate
205
226
  onInitialBundleLoad:_onInitialBundleLoad
206
227
  moduleRegistry:_moduleRegistry
207
- parentInspectorTarget:_inspectorTarget.get()];
228
+ parentInspectorTarget:_inspectorTarget.get()
229
+ launchOptions:_launchOptions];
208
230
  [_hostDelegate hostDidStart:self];
209
231
  }
210
232
 
@@ -284,7 +306,8 @@ class RCTHostPageTargetDelegate : public facebook::react::jsinspector_modern::Pa
284
306
  turboModuleManagerDelegate:_turboModuleManagerDelegate
285
307
  onInitialBundleLoad:_onInitialBundleLoad
286
308
  moduleRegistry:_moduleRegistry
287
- parentInspectorTarget:_inspectorTarget.get()];
309
+ parentInspectorTarget:_inspectorTarget.get()
310
+ launchOptions:_launchOptions];
288
311
  [_hostDelegate hostDidStart:self];
289
312
 
290
313
  for (RCTFabricSurface *surface in [self _getAttachedSurfaces]) {
@@ -62,7 +62,8 @@ typedef void (^_Null_unspecified RCTInstanceInitialBundleLoadCompletionBlock)();
62
62
  turboModuleManagerDelegate:(id<RCTTurboModuleManagerDelegate>)turboModuleManagerDelegate
63
63
  onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad
64
64
  moduleRegistry:(RCTModuleRegistry *)moduleRegistry
65
- parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget;
65
+ parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget
66
+ launchOptions:(nullable NSDictionary *)launchOptions;
66
67
 
67
68
  - (void)callFunctionOnJSModule:(NSString *)moduleName method:(NSString *)method args:(NSArray *)args;
68
69
 
@@ -31,7 +31,6 @@
31
31
  #import <React/RCTModuleData.h>
32
32
  #import <React/RCTPerformanceLogger.h>
33
33
  #import <React/RCTRedBox.h>
34
- #import <React/RCTReloadCommand.h>
35
34
  #import <React/RCTSurfacePresenter.h>
36
35
  #import <ReactCommon/RCTTurboModuleManager.h>
37
36
  #import <ReactCommon/RuntimeExecutor.h>
@@ -84,6 +83,7 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
84
83
  std::mutex _invalidationMutex;
85
84
  std::atomic<bool> _valid;
86
85
  RCTJSThreadManager *_jsThreadManager;
86
+ NSDictionary *_launchOptions;
87
87
 
88
88
  // APIs supporting interop with native modules and view managers
89
89
  RCTBridgeModuleDecorator *_bridgeModuleDecorator;
@@ -100,6 +100,7 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
100
100
  onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad
101
101
  moduleRegistry:(RCTModuleRegistry *)moduleRegistry
102
102
  parentInspectorTarget:(jsinspector_modern::PageTarget *)parentInspectorTarget
103
+ launchOptions:(nullable NSDictionary *)launchOptions
103
104
  {
104
105
  if (self = [super init]) {
105
106
  _performanceLogger = [RCTPerformanceLogger new];
@@ -125,6 +126,7 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
125
126
  [weakSelf callFunctionOnJSModule:moduleName method:methodName args:args];
126
127
  }];
127
128
  }
129
+ _launchOptions = launchOptions;
128
130
 
129
131
  NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
130
132
 
@@ -133,11 +135,6 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
133
135
  name:@"RCTNotifyEventDispatcherObserversOfEvent_DEPRECATED"
134
136
  object:nil];
135
137
 
136
- [defaultCenter addObserver:self
137
- selector:@selector(didReceiveReloadCommand)
138
- name:RCTTriggerReloadCommandNotification
139
- object:nil];
140
-
141
138
  [self _start];
142
139
  }
143
140
  return self;
@@ -276,7 +273,8 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
276
273
  [strongSelf registerSegmentWithId:segmentId path:path];
277
274
  }
278
275
  }
279
- runtime:_reactInstance->getJavaScriptContext()];
276
+ runtime:_reactInstance->getJavaScriptContext()
277
+ launchOptions:_launchOptions];
280
278
  bridgeProxy.jsCallInvoker = jsCallInvoker;
281
279
  [RCTBridge setCurrentBridge:(RCTBridge *)bridgeProxy];
282
280
 
@@ -519,9 +517,4 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
519
517
  isFatal:errorMap.getBool(JSErrorHandlerKey::kIsFatal)];
520
518
  }
521
519
 
522
- - (void)didReceiveReloadCommand
523
- {
524
- [self _loadJSBundle:[_bridgeModuleDecorator.bundleManager bundleURL]];
525
- }
526
-
527
520
  @end
@@ -11,7 +11,7 @@
11
11
 
12
12
  @property int initCount;
13
13
  @property int invalidateCount;
14
-
14
+ @property NSDictionary *launchOptions;
15
15
  @property NSString *jsModuleName;
16
16
  @property NSString *method;
17
17
  @property NSArray *args;
@@ -24,7 +24,7 @@ static __weak ShimRCTInstance *weakShim = nil;
24
24
  [ShimRCTInstance class],
25
25
  @selector(initWithDelegate:
26
26
  jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry
27
- :parentInspectorTarget:));
27
+ :parentInspectorTarget:launchOptions:));
28
28
  RCTSwizzleInstanceSelector([RCTInstance class], [ShimRCTInstance class], @selector(invalidate));
29
29
  RCTSwizzleInstanceSelector(
30
30
  [RCTInstance class], [ShimRCTInstance class], @selector(callFunctionOnJSModule:method:args:));
@@ -40,7 +40,7 @@ static __weak ShimRCTInstance *weakShim = nil;
40
40
  [ShimRCTInstance class],
41
41
  @selector(initWithDelegate:
42
42
  jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry
43
- :parentInspectorTarget:));
43
+ :parentInspectorTarget:launchOptions:));
44
44
  RCTSwizzleInstanceSelector([RCTInstance class], [ShimRCTInstance class], @selector(invalidate));
45
45
  RCTSwizzleInstanceSelector(
46
46
  [RCTInstance class], [ShimRCTInstance class], @selector(callFunctionOnJSModule:method:args:));
@@ -55,6 +55,7 @@ static __weak ShimRCTInstance *weakShim = nil;
55
55
  onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad
56
56
  moduleRegistry:(RCTModuleRegistry *)moduleRegistry
57
57
  parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget
58
+ launchOptions:(NSDictionary *)launchOptions
58
59
  {
59
60
  weakShim.initCount++;
60
61
  return self;
@@ -32,7 +32,10 @@ Pod::Spec.new do |spec|
32
32
  spec.requires_arc = false
33
33
  spec.pod_target_xcconfig = {
34
34
  'DEFINES_MODULE' => 'YES'
35
- }
35
+ }.merge!(ENV['USE_FRAMEWORKS'] != nil ? {
36
+ 'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)"'
37
+ } : {})
38
+
36
39
  spec.compiler_flags = [
37
40
  '-fno-omit-frame-pointer',
38
41
  '-fexceptions',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.74.0-rc.6",
3
+ "version": "0.74.0-rc.8",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -110,13 +110,13 @@
110
110
  "@react-native-community/cli": "13.6.4",
111
111
  "@react-native-community/cli-platform-android": "13.6.4",
112
112
  "@react-native-community/cli-platform-ios": "13.6.4",
113
- "@react-native/assets-registry": "0.74.77",
114
- "@react-native/codegen": "0.74.77",
115
- "@react-native/community-cli-plugin": "0.74.77",
116
- "@react-native/gradle-plugin": "0.74.77",
117
- "@react-native/js-polyfills": "0.74.77",
118
- "@react-native/normalize-colors": "0.74.77",
119
- "@react-native/virtualized-lists": "0.74.77",
113
+ "@react-native/assets-registry": "0.74.79",
114
+ "@react-native/codegen": "0.74.79",
115
+ "@react-native/community-cli-plugin": "0.74.79",
116
+ "@react-native/gradle-plugin": "0.74.79",
117
+ "@react-native/js-polyfills": "0.74.79",
118
+ "@react-native/normalize-colors": "0.74.79",
119
+ "@react-native/virtualized-lists": "0.74.79",
120
120
  "abort-controller": "^3.0.0",
121
121
  "anser": "^1.4.9",
122
122
  "ansi-regex": "^5.0.0",
@@ -189,7 +189,7 @@ class ReactNativePodsUtils
189
189
  installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result|
190
190
  if pod_name.to_s == target_pod_name
191
191
  target_installation_result.native_target.build_configurations.each do |config|
192
- if configuration == nil || (configuration != nil && configuration == config.name)
192
+ if configuration == nil || (configuration != nil && config.name.include?(configuration))
193
193
  config.build_settings[settings_name] ||= '$(inherited) '
194
194
  config.build_settings[settings_name] << settings_value
195
195
  end
@@ -7,8 +7,6 @@
7
7
  # Defines functions for building various Hermes frameworks.
8
8
  # See build-ios-framework.sh and build-mac-framework.sh for usage examples.
9
9
 
10
- set -x -e
11
-
12
10
  CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
13
11
 
14
12
  IMPORT_HERMESC_PATH=${HERMES_OVERRIDE_HERMESC_PATH:-$PWD/build_host_hermesc/ImportHermesc.cmake}
@@ -4,7 +4,10 @@
4
4
  # This source code is licensed under the MIT license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
- set -x -e
7
+ if [ "$CI" ]; then
8
+ set -x
9
+ fi
10
+ set -e
8
11
 
9
12
  # Given a specific target, retrieve the right architecture for it
10
13
  # $1 the target you want to build. Allowed values: iphoneos, iphonesimulator, catalyst
@@ -4,7 +4,10 @@
4
4
  # This source code is licensed under the MIT license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
- set -x -e
7
+ if [ "$CI" ]; then
8
+ set -x
9
+ fi
10
+ set -e
8
11
 
9
12
  # shellcheck source=xplat/js/react-native-github/sdks/hermes-engine/utils/build-apple-framework.sh
10
13
  CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
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>
@@ -36,6 +36,7 @@
36
36
  13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = "<group>"; };
37
37
  13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = HelloWorld/Info.plist; sourceTree = "<group>"; };
38
38
  13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = HelloWorld/main.m; sourceTree = "<group>"; };
39
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
39
40
  19F6CBCC0A4E27FBF8BF4A61 /* libPods-HelloWorld-HelloWorldTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld-HelloWorldTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
40
41
  3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.debug.xcconfig"; sourceTree = "<group>"; };
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>"; };
@@ -92,6 +93,7 @@
92
93
  13B07FB61A68108700A75B9A /* Info.plist */,
93
94
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
94
95
  13B07FB71A68108700A75B9A /* main.m */,
96
+ 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */,
95
97
  );
96
98
  name = HelloWorld;
97
99
  sourceTree = "<group>";
@@ -11,16 +11,16 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "react": "18.2.0",
14
- "react-native": "0.74.0-rc.6"
14
+ "react-native": "0.74.0-rc.8"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@babel/core": "^7.20.0",
18
18
  "@babel/preset-env": "^7.20.0",
19
19
  "@babel/runtime": "^7.20.0",
20
- "@react-native/babel-preset": "0.74.77",
21
- "@react-native/eslint-config": "0.74.77",
22
- "@react-native/metro-config": "0.74.77",
23
- "@react-native/typescript-config": "0.74.77",
20
+ "@react-native/babel-preset": "0.74.79",
21
+ "@react-native/eslint-config": "0.74.79",
22
+ "@react-native/metro-config": "0.74.79",
23
+ "@react-native/typescript-config": "0.74.79",
24
24
  "@types/react": "^18.2.6",
25
25
  "@types/react-test-renderer": "^18.0.0",
26
26
  "babel-jest": "^29.6.3",