Skip to content

feat(sample): Add tvOS sample app - #6677

Merged
antonis merged 5 commits into
mainfrom
feat/tvos-sample
Sep 7, 2026
Merged

feat(sample): Add tvOS sample app#6677
antonis merged 5 commits into
mainfrom
feat/tvos-sample

Conversation

@antonis

@antonis antonis commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

📢 Type of change

  • New feature

📜 Description

Adds a New Architecture tvOS sample app under samples/react-native-tvos, wired against the local @sentry/react-native SDK, mirroring the visionOS sample work.

💡 Motivation and Context

Closes #5275
Partially #6648

💚 How did you test it?

Validated locally (New Architecture, tvOS Simulator):

Screenshot 2026-09-07 at 09 52 19

📝 Checklist

  • I added tests to verify changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing.
  • No breaking changes.

🔮 Next steps

antonis and others added 3 commits September 4, 2026 15:55
Add a New Architecture tvOS sample (react-native-tvos@0.87.1-0) wired
against the local @sentry/react-native SDK, mirroring the visionOS sample
work. Includes a build-tvos CI job (dev + production, tvOS Simulator) and
the sample_react_native file filter entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
cocoapods 1.15.2 fails on Ruby 3.4 (kconv was removed from stdlib). The
repo's root .ruby-version pins 3.4.7, so pin the sample to 3.3.0 (what CI
uses) via a local .ruby-version so pod install works out of the box.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • feat(sample): Add tvOS sample app by antonis in #6677
  • fix(e2e): Pin json gem < 3.0 for RN < 0.72 iOS builds by antonis in #6678
  • feat(ios): Expose enableMemoryIntrospection option by antonis in #6674
  • feat(android): Add anrProfilingSampleRate option by antonis in #6673
  • ci: Unpin Android E2E emulator build by antonis in #6672
  • ref(ios): Remove deprecated private SDK API usage by philprime in #6647
  • chore(deps): update Cocoa SDK to v9.27.0 by github-actions in #6670
  • chore(deps): update Sentry Android Gradle Plugin to v6.21.0 by github-actions in #6671
  • chore(deps): Bump fast-uri to ^3.1.6 to resolve security alerts by antonis in #6662
  • chore(deps): Bump qs to ^6.16.0 to resolve security alerts by antonis in #6663
  • chore(deps): Bump @xmldom/xmldom pins to patched versions to resolve security alerts by antonis in #6664
  • docs: Revamp root and nested AGENTS.md by antonis in #6666

🤖 This preview updates automatically when you update the PR.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 5c2da67

@antonis antonis added ready-to-merge Triggers the full CI test suite skip-changelog labels Sep 7, 2026
Comment thread samples/react-native-tvos/android/app/src/main/AndroidManifest.xml Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread .github/workflows/sample-application.yml
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 416.68 ms 439.04 ms 22.36 ms
Size 50.56 MiB 56.46 MiB 5.90 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
68672fc+dirty 425.02 ms 487.56 ms 62.54 ms
71abba0+dirty 496.54 ms 525.16 ms 28.63 ms
7ff4d0f+dirty 413.81 ms 450.64 ms 36.83 ms
9ad4522+dirty 420.73 ms 444.18 ms 23.45 ms
0a147b2+dirty 464.71 ms 538.81 ms 74.09 ms
d2eadf8+dirty 414.64 ms 454.56 ms 39.92 ms
57e0069+dirty 413.82 ms 453.47 ms 39.65 ms
26843eb+dirty 532.15 ms 624.13 ms 91.98 ms
9210ae6+dirty 475.41 ms 525.24 ms 49.84 ms
1e5d96d+dirty 519.43 ms 543.62 ms 24.19 ms

App size

Revision Plain With Sentry Diff
68672fc+dirty 48.30 MiB 53.61 MiB 5.31 MiB
71abba0+dirty 48.30 MiB 53.49 MiB 5.19 MiB
7ff4d0f+dirty 48.30 MiB 53.60 MiB 5.30 MiB
9ad4522+dirty 49.74 MiB 55.38 MiB 5.63 MiB
0a147b2+dirty 49.74 MiB 55.08 MiB 5.34 MiB
d2eadf8+dirty 48.30 MiB 53.48 MiB 5.18 MiB
57e0069+dirty 49.74 MiB 54.85 MiB 5.11 MiB
26843eb+dirty 49.74 MiB 55.26 MiB 5.52 MiB
9210ae6+dirty 48.30 MiB 53.54 MiB 5.23 MiB
1e5d96d+dirty 49.74 MiB 54.81 MiB 5.07 MiB

- Format Android TV MainActivity/MainApplication to satisfy ktlint.
- Replace the undefined ${usesCleartextTraffic} manifest placeholder with
  the repo's convention: no cleartext in the main manifest, enabled only in
  a debug manifest (matches samples/react-native).
- Set TOOLCHAINS=com.apple.dt.toolchain.XcodeDefault on the build-tvos job
  to match build-ios (Xcode 26 MetalToolchain Swift compat libs).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 1eae64c. Configure here.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 3857.22 ms 1218.59 ms -2638.64 ms
Size 5.15 MiB 6.88 MiB 1.73 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
ecf47a2+dirty 3835.20 ms 1222.43 ms -2612.77 ms
3817909+dirty 1183.90 ms 1187.50 ms 3.60 ms
5ee78d6+dirty 3847.52 ms 1224.27 ms -2623.25 ms
890d145+dirty 1223.59 ms 1231.37 ms 7.78 ms
e763471+dirty 3841.16 ms 1218.06 ms -2623.09 ms
3d31fcf+dirty 3838.09 ms 1223.46 ms -2614.63 ms
9210ae6+dirty 3815.93 ms 1214.14 ms -2601.79 ms
26843eb+dirty 3861.60 ms 1238.77 ms -2622.82 ms
7a89652+dirty 3861.46 ms 1229.61 ms -2631.85 ms
9ad4522+dirty 3850.40 ms 1222.40 ms -2628.00 ms

App size

Revision Plain With Sentry Diff
ecf47a2+dirty 4.98 MiB 6.46 MiB 1.49 MiB
3817909+dirty 3.38 MiB 4.73 MiB 1.35 MiB
5ee78d6+dirty 5.15 MiB 6.69 MiB 1.53 MiB
890d145+dirty 3.38 MiB 4.77 MiB 1.38 MiB
e763471+dirty 4.98 MiB 6.51 MiB 1.53 MiB
3d31fcf+dirty 4.98 MiB 6.56 MiB 1.58 MiB
9210ae6+dirty 5.15 MiB 6.68 MiB 1.53 MiB
26843eb+dirty 4.98 MiB 6.53 MiB 1.55 MiB
7a89652+dirty 5.15 MiB 6.70 MiB 1.55 MiB
9ad4522+dirty 4.98 MiB 6.56 MiB 1.58 MiB

@antonis
antonis marked this pull request as ready for review September 7, 2026 08:36
Comment thread samples/react-native-tvos/scripts/pod-install.sh
@@ -0,0 +1,119 @@
apply plugin: "com.android.application"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I'm missing something but why do we need Android app within tvOS sample?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can be an Android tv app but technically the SDK is the same with the main Android and no separate CI build job should be needed to validate

@alwx alwx left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One question about Android in tvOS sample, looks good otherwise.

Comment on lines +31 to +41
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "00E356ED1AD99517003FC87E"
BuildableName = "TVOSSampleTests.xctest"
BlueprintName = "TVOSSampleTests"
ReferencedContainer = "container:TVOSSample.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scheme references missing TVOSSampleTests target

Remove the TestableReference for TVOSSampleTests, or add that native test target to the Xcode project—the scheme currently points at a BlueprintIdentifier that does not exist in project.pbxproj.

Evidence
  • TVOSSample.xcscheme TestAction references BlueprintIdentifier 00E356ED1AD99517003FC87E / BlueprintName TVOSSampleTests.
  • project.pbxproj PBXNativeTarget section only defines 13B07F861A680F5B00A75B9A /* TVOSSample */; no TVOSSampleTests target or that ID exists.
  • Project targets array lists only TVOSSample, so scheme Test action resolves to a missing target.

Identified by Warden · code-review · 523-46D

@antonis
antonis merged commit 0e8a413 into main Sep 7, 2026
82 of 87 checks passed
@antonis
antonis deleted the feat/tvos-sample branch September 7, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite skip-changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add tvOS sample to the project

2 participants