Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49668 This change refactors the script to prebuild ios dependencies by: - factoring out CLI validation in a separate file - factoring out the folder utilities in a separate file bypass-github-export-checks ## Changelog: [INTERNAL] - Factor out CLI and folder utilities Test Plan: Tested in this `AppDelegate.mm`: Imports: ```obj-c #import "AppDelegate.h" #import <glog/logging.h> #import <double-conversion.h> #include <fmt/core.h> #include <boost/assert.hpp> #include <fast_float/fast_float.h> #include <string> #import <SocketRocket/SRWebSocket.h> ``` Code: ```obj-c - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { std::string input = "3.1416 xyz "; double_conversion::DoubleToStringConverter::EcmaScriptConverter(); LOG(INFO) << "Hello from GLOG"; fmt::print("Hello, world from FMT!\n"); BOOST_ASSERT(100 == 100); double result; fast_float::from_chars(input.data(), input.data() + input.size(), result); LOG(INFO) << "Answer :" << result; NSArray *frameworks = [NSBundle allFrameworks]; for (NSBundle *framework in frameworks) { NSString *frameworkName = framework.bundleURL.lastPathComponent; if ([frameworkName isEqualToString: @"ReactNativeDependencies.framework"]) { NSBundle *bundle = [NSBundle bundleWithURL:[framework bundleURL]]; NSURL *bundleURL = [bundle URLForResource:@"ReactNativeDependencies_glog" withExtension:@"bundle"]; NSBundle *resourceBundle = [NSBundle bundleWithURL:bundleURL]; NSURL* url = [resourceBundle URLForResource:@"PrivacyInfo" withExtension:@"xcprivacy"]; if (url == nil) { throw [NSException exceptionWithName:@"ResourceNotFoundException" reason:@"Could not find PrivacyInfo.xcprivacy in ReactNativeDependencies_glog bundle" userInfo:nil]; } break; } } return YES; } ``` Reviewed By: cortinico Differential Revision: D70175663 Pulled By: cipolleschi fbshipit-source-id: 5c6653aed7054658c5e265675766a28415da3918
scripts/releases
Scripts related to creating a React Native release. These are the lower level entry points used by scripts/releases-ci.
Commands
For information on command arguments, run node <command> --help.
create-release-commit
Creates a release commit to trigger a new release.
set-version
Bump the version of all packages.
- Updates
package.jsonmetadata for all workspaces and the project root. - Updates relevant native files in the
react-nativepackage.
If --skipReactNativeVersion is passed, the react-native package version will be left unmodified as "1000.0.0" (special static version on main), and native files will not be touched.
set-rn-artifacts-version
Note
Deprecated: Prefer
set-version. This entry point is a subset ofset-version, and is used only by test workflows. We will replace these call sites in future.
Updates relevant native files in the react-native package to materialize the given release version. This is run by set-version unless --skipReactNativeVersion is passed.