Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7a956de
Quick test for spm_dependency migration
sbarrio Sep 23, 2026
2fffe9f
Add missing React-RCTText dependency and resolve OpenTelemetry from S…
saraSr5 Sep 29, 2026
9025bea
Restore the native test suites removed during the SwiftPM migration
saraSr5 Sep 29, 2026
fd15fea
Fix webview main target link failure and restore internal-testing-too…
saraSr5 Sep 30, 2026
a79243d
Declare OpenTelemetry SPM products as BenchmarkRunner target dependen…
saraSr5 Sep 30, 2026
a78a5d0
Correct the tvOS compatibility test's stale claim about DatadogWebVie…
saraSr5 Sep 30, 2026
7c4a28a
Merge remote-tracking branch 'origin/develop' into sara/RUM-18631/spm…
saraSr5 Oct 2, 2026
09d011e
Fix release scripts to read datadog_ios_version from the new SPM pods…
saraSr5 Oct 2, 2026
08b6ad4
Assign pod_target_xcconfig before install_modules_dependencies in the…
saraSr5 Oct 2, 2026
16c9d09
Merge remote-tracking branch 'origin/develop' into sara/RUM-18631/spm…
saraSr5 Oct 9, 2026
bc2310f
Add missing space in the WebView header comment
saraSr5 Oct 9, 2026
3c0e4c0
Merge remote-tracking branch 'origin/develop' into sara/RUM-18631/spm…
saraSr5 Oct 14, 2026
5e77777
Merge remote-tracking branch 'origin/develop' into sara/RUM-18631/spm…
saraSr5 Oct 20, 2026
50ee8c1
Merge remote-tracking branch 'origin/develop' into sara/RUM-18631/spm…
saraSr5 Oct 21, 2026
9c7865c
Search the products directory for DatadogInternal in archive builds
saraSr5 Oct 21, 2026
63d59d5
Embed the Datadog Swift package frameworks that Xcode builds dynamically
saraSr5 Oct 21, 2026
fd6568e
Migrate PodfileForSRTests to the Swift Package Manager setup
saraSr5 Oct 21, 2026
a5a298c
Support static linking after SPM migration
saraSr5 Oct 26, 2026
c2b7045
Build the statically linked example with Xcode 26
saraSr5 Oct 26, 2026
47482e8
Revert "Build the statically linked example with Xcode 26"
saraSr5 Oct 26, 2026
8e605f8
Remove duplicate Swift package objects from the static core archive
saraSr5 Oct 26, 2026
a9d1373
Read pod linkage from the app target only
saraSr5 Oct 26, 2026
7529206
Handle universal archives when removing duplicate Swift package objects
saraSr5 Oct 26, 2026
619d526
Quote the slice paths when rebuilding universal archives
saraSr5 Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 61 additions & 4 deletions benchmarks/ios/BenchmarkRunner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
043403262DCB9CD700803AF8 /* BenchmarkVitals.mm in Sources */ = {isa = PBXBuildFile; fileRef = 043403242DCB9CD700803AF8 /* BenchmarkVitals.mm */; };
04576C962DCBAF900078DCAB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 04576C952DCBAF900078DCAB /* main.m */; };
04726DD72F46402A008D1A48 /* TracerProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04726DD62F46402A008D1A48 /* TracerProvider.swift */; };
0C80B921A6F3F58F76C31292 /* libPods-BenchmarkRunner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-BenchmarkRunner.a */; };
10520E8C306BAEDB00BBFBFF /* OpenTelemetryApi in Frameworks */ = {isa = PBXBuildFile; productRef = 10520E8B306BAEDB00BBFBFF /* OpenTelemetryApi */; };
10520E8E306BAEDB00BBFBFF /* OpenTelemetrySdk in Frameworks */ = {isa = PBXBuildFile; productRef = 10520E8D306BAEDB00BBFBFF /* OpenTelemetrySdk */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
20A397FC280595A8A9851556 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; };
52040CC80A3CB0E4C3A131B0 /* Pods_BenchmarkRunner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E927512A5C6D462705AE797 /* Pods_BenchmarkRunner.framework */; };
761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
Expand All @@ -42,8 +44,8 @@
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = BenchmarkRunner/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
3B4392A12AC88292D35C810B /* Pods-BenchmarkRunner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BenchmarkRunner.debug.xcconfig"; path = "Target Support Files/Pods-BenchmarkRunner/Pods-BenchmarkRunner.debug.xcconfig"; sourceTree = "<group>"; };
5709B34CF0A7D63546082F79 /* Pods-BenchmarkRunner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BenchmarkRunner.release.xcconfig"; path = "Target Support Files/Pods-BenchmarkRunner/Pods-BenchmarkRunner.release.xcconfig"; sourceTree = "<group>"; };
5DCACB8F33CDC322A6C60F78 /* libPods-BenchmarkRunner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BenchmarkRunner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
761780EC2CA45674006654EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = BenchmarkRunner/AppDelegate.swift; sourceTree = "<group>"; };
7E927512A5C6D462705AE797 /* Pods_BenchmarkRunner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BenchmarkRunner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = BenchmarkRunner/LaunchScreen.storyboard; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */
Expand All @@ -53,7 +55,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
0C80B921A6F3F58F76C31292 /* libPods-BenchmarkRunner.a in Frameworks */,
10520E8E306BAEDB00BBFBFF /* OpenTelemetrySdk in Frameworks */,
52040CC80A3CB0E4C3A131B0 /* Pods_BenchmarkRunner.framework in Frameworks */,
10520E8C306BAEDB00BBFBFF /* OpenTelemetryApi in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -110,7 +114,7 @@
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
5DCACB8F33CDC322A6C60F78 /* libPods-BenchmarkRunner.a */,
7E927512A5C6D462705AE797 /* Pods_BenchmarkRunner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
Expand Down Expand Up @@ -174,6 +178,10 @@
dependencies = (
);
name = BenchmarkRunner;
packageProductDependencies = (
10520E8B306BAEDB00BBFBFF /* OpenTelemetryApi */,
10520E8D306BAEDB00BBFBFF /* OpenTelemetrySdk */,
);
productName = BenchmarkRunner;
productReference = 13B07F961A680F5B00A75B9A /* BenchmarkRunner.app */;
productType = "com.apple.product-type.application";
Expand All @@ -200,6 +208,9 @@
Base,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
packageReferences = (
10520E8A306BAEDB00BBFBFF /* XCRemoteSwiftPackageReference "opentelemetry-swift-core" */,
);
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
projectDirPath = "";
projectRoot = "";
Expand Down Expand Up @@ -574,6 +585,17 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
);
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
Expand Down Expand Up @@ -648,6 +670,17 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
);
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
LD_RUNPATH_SEARCH_PATHS = (
/usr/lib/swift,
Expand Down Expand Up @@ -701,6 +734,30 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
10520E8A306BAEDB00BBFBFF /* XCRemoteSwiftPackageReference "opentelemetry-swift-core" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/open-telemetry/opentelemetry-swift-core";
requirement = {
kind = upToNextMinorVersion;
minimumVersion = 2.5.0;
};
};
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
10520E8B306BAEDB00BBFBFF /* OpenTelemetryApi */ = {
isa = XCSwiftPackageProductDependency;
package = 10520E8A306BAEDB00BBFBFF /* XCRemoteSwiftPackageReference "opentelemetry-swift-core" */;
productName = OpenTelemetryApi;
};
10520E8D306BAEDB00BBFBFF /* OpenTelemetrySdk */ = {
isa = XCSwiftPackageProductDependency;
package = 10520E8A306BAEDB00BBFBFF /* XCRemoteSwiftPackageReference "opentelemetry-swift-core" */;
productName = OpenTelemetrySdk;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions benchmarks/ios/BenchmarkRunner/PrivacyInfo.xcprivacy
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
<string>C617.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
<string>CA92.1</string>
</array>
</dict>
<dict>
Expand Down
20 changes: 12 additions & 8 deletions benchmarks/ios/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ require Pod::Executable.execute_command('node', ['-p',
platform :ios, min_ios_version_supported
prepare_react_native_project!

linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
# The Datadog podspecs work with any pod linkage, but BenchmarkRunner, which links the OpenTelemetry
# SPM products directly, has only been set up and verified with dynamic frameworks.
use_frameworks! :linkage => :dynamic

target 'BenchmarkRunner' do
config = use_native_modules!
Expand All @@ -25,9 +23,15 @@ target 'BenchmarkRunner' do
:app_path => "#{Pod::Config.instance.installation_root}/.."
)

# OpenTelemetrySdk is needed by the BenchmarkVitals code (metrics exporter, meter provider).
# OpenTelemetryApi is already pulled in transitively via DatadogTrace, but OpenTelemetrySdk is not.
pod 'OpenTelemetry-Swift-Sdk', '~> 2.5.0'
# OpenTelemetryApi and OpenTelemetrySdk are needed by the BenchmarkVitals code (metrics exporter,
# meter provider). They are not declared here: DatadogTrace already resolves
# opentelemetry-swift-core through SwiftPM, and both are products of that same package, so the
# BenchmarkRunner target links them directly from it.
#
# Pulling OpenTelemetrySdk from CocoaPods instead would bring a second copy of the OpenTelemetryApi
# module into the build -- one from the pod, one from SwiftPM -- which makes Xcode's explicit
# module scanner emit "is missing a dependency on 'OpenTelemetryApi'" warnings across every target
# that touches it.

post_install do |installer|
# https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
Expand Down
Loading
Loading