From 2ade12d7475b6bbc012adfa16c08c2654dab5ad9 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 16 Jun 2025 07:29:00 -0700 Subject: [PATCH] Fix OSS CI (#52042) Summary: The OSS CI for iOS is broken because of a couple of commit that landed: - Commit 05a61e816108774499bcf837d48d2c0c681d9559 : dynamic frameworks are broken - Commit abc8fe1c92e5f8014d2c8b84f39daaed1fd6660e : pod donwload is broken This change fixes both of them ## Changelog: [Internal] - Fix OSS CI Pull Request resolved: https://github.com/facebook/react-native/pull/52042 Test Plan: Tested locally by building RNTester with Dynamic frameworks ``` USE_FRAMEWORKS=dynamic bundle exec pod install ``` Reviewed By: rshest, lenaic, GijsWeterings Differential Revision: D76730331 Pulled By: cipolleschi fbshipit-source-id: 71cca1f50763d24773dedcd8267130df261b01dc --- .../React-runtimeexecutor.podspec | 6 ++++- .../scripts/cocoapods/rndependencies.rb | 24 ++++++++++++------- .../sdks/hermes-engine/hermes-utils.rb | 23 +++++++++++------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec index 8e2904d20bd..0ffe658fe61 100644 --- a/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +++ b/packages/react-native/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec @@ -43,8 +43,12 @@ Pod::Spec.new do |s| "HEADER_SEARCH_PATHS" => header_search_paths.join(' '), "DEFINES_MODULE" => "YES" } + add_rn_third_party_dependencies(s) + s.dependency "React-jsi", version - s.dependency "React-featureflags", version + add_dependency(s, "React-featureflags") add_dependency(s, "React-debug") add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"]) + + end diff --git a/packages/react-native/scripts/cocoapods/rndependencies.rb b/packages/react-native/scripts/cocoapods/rndependencies.rb index 5da66117e16..e102f7fe4e4 100644 --- a/packages/react-native/scripts/cocoapods/rndependencies.rb +++ b/packages/react-native/scripts/cocoapods/rndependencies.rb @@ -142,17 +142,23 @@ class ReactNativeDependenciesUtils end def self.nightly_tarball_url(version) - artefact_coordinate = "react-native-artifacts" - artefact_name = "reactnative-dependencies-debug.tar.gz" - xml_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artefact_coordinate}/#{version}-SNAPSHOT/maven-metadata.xml" + artifact_coordinate = "react-native-artifacts" + artifact_name = "reactnative-dependencies-debug.tar.gz" + xml_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artifact_coordinate}/#{version}-SNAPSHOT/maven-metadata.xml" - xml = REXML::Document.new(Net::HTTP.get(URI(xml_url))) - timestamp = xml.elements['metadata/versioning/snapshot/timestamp'].text - build_number = xml.elements['metadata/versioning/snapshot/buildNumber'].text - full_version = "#{version}-#{timestamp}-#{build_number}" - final_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artefact_coordinate}/#{version}-SNAPSHOT/#{artefact_coordinate}-#{full_version}-#{artefact_name}" - return final_url + response = Net::HTTP.get(URI(xml_url)) + if response.kind_of? Net::HTTPSuccess + xml = REXML::Document.new(response) + timestamp = xml.elements['metadata/versioning/snapshot/timestamp'].text + build_number = xml.elements['metadata/versioning/snapshot/buildNumber'].text + full_version = "#{version}-#{timestamp}-#{build_number}" + + final_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artifact_coordinate}/#{version}-SNAPSHOT/#{artifact_coordinate}-#{full_version}-#{artifact_name}" + return final_url + else + return "" + end end def self.download_stable_rndeps(react_native_path, version, configuration) diff --git a/packages/react-native/sdks/hermes-engine/hermes-utils.rb b/packages/react-native/sdks/hermes-engine/hermes-utils.rb index 59a037fecb5..7c6a32a4a00 100644 --- a/packages/react-native/sdks/hermes-engine/hermes-utils.rb +++ b/packages/react-native/sdks/hermes-engine/hermes-utils.rb @@ -230,17 +230,22 @@ def download_hermes_tarball(react_native_path, tarball_url, version, configurati end def nightly_tarball_url(version) - artefact_coordinate = "react-native-artifacts" - artefact_name = "hermes-ios-debug.tar.gz" - xml_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artefact_coordinate}/#{version}-SNAPSHOT/maven-metadata.xml" + artifact_coordinate = "react-native-artifacts" + artifact_name = "hermes-ios-debug.tar.gz" + xml_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artifact_coordinate}/#{version}-SNAPSHOT/maven-metadata.xml" - xml = REXML::Document.new(Net::HTTP.get(URI(xml_url))) - timestamp = xml.elements['metadata/versioning/snapshot/timestamp'].text - build_number = xml.elements['metadata/versioning/snapshot/buildNumber'].text - full_version = "#{version}-#{timestamp}-#{build_number}" + response = Net::HTTP.get(URI(xml_url)) + if response.kind_of? Net::HTTPSuccess + xml = REXML::Document.new(response) + timestamp = xml.elements['metadata/versioning/snapshot/timestamp'].text + build_number = xml.elements['metadata/versioning/snapshot/buildNumber'].text + full_version = "#{version}-#{timestamp}-#{build_number}" + final_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artifact_coordinate}/#{version}-SNAPSHOT/#{artifact_coordinate}-#{full_version}-#{artifact_name}" - final_url = "https://central.sonatype.com/repository/maven-snapshots/com/facebook/react/#{artefact_coordinate}/#{version}-SNAPSHOT/#{artefact_coordinate}-#{full_version}-#{artefact_name}" - return final_url + return final_url + else + return "" + end end def resolve_url_redirects(url)