Skip to content

frontend: Force Intel-based installations to update to Apple Silicon version on macOS#13410

Open
PatTheMav wants to merge 2 commits intoobsproject:masterfrom
PatTheMav:sparkle-force-arm64
Open

frontend: Force Intel-based installations to update to Apple Silicon version on macOS#13410
PatTheMav wants to merge 2 commits intoobsproject:masterfrom
PatTheMav:sparkle-force-arm64

Conversation

@PatTheMav
Copy link
Copy Markdown
Member

Description

Forces Sparkle to use the Apple Silicon app cast URL when checking for new versions on OBS Studio if the app runs via Rosetta on an M-series Mac.

The intent is that an emulated version of OBS Studio will be provided with a native variant of the update and thus overwrite the existing copy on the users drive. Upon relaunch of the app (handled by Sparkle itself) the user should then be running the native variant.

Motivation and Context

Rosetta is a transitional technology to support users during architecture transitions on Apple platforms and allow developers a grace period to provide working software to users on new architectures while work on a native version continues.

OBS Studio was available natively on Apple Silicon while the M1 chips were current already, and the plugin template had also been updated a long time ago.

Some users might however not be aware of different processor architectures and thus would not know or understand that they might have downloaded the "wrong" version of OBS Studio or might have migrated from an Intel-based Mac to a more recent Apple Silicon-base machine and thus just updated their existing copy of OBS Studio.

Rosetta will be deprecated in macOS 27:

Rosetta is currently available for any Mac with Apple silicon, and it will remain available through the forthcoming macOS 27 — the next major macOS release. Starting with computers using macOS 28, Rosetta functionality will be available only for certain older, unmaintained games that rely on Intel-based frameworks.

Thus it's important to use this deprecation as a kick-off to move as many users as possible off the Intel-based variant of OBS Studio before macOS 28 is released.

How Has This Been Tested?

Locally tested by inspecting code execution (confirming that alternative app cast URLs are used by Sparkle), changing app cast URL at runtime for non-emulated variants, further tests will be done with Intel builds provided by CI.

Types of changes

  • Tweak (non-breaking change to improve existing functionality)

Checklist:

  • I have read the contributing document.
  • My code has been run through clang-format.
  • My code follows the project's style guidelines
  • My code is not on the master branch.
  • My code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

PatTheMav added 2 commits May 6, 2026 23:15
Adds necessary delegate method to OBSSupdateDelegate to provide
alternative AppCast feed URL at runtime.

The NSString pointer is allowed to be "nil" as Sparkle will only use
a non-nil return value to change from the default feed URL.
When OBS runs via Rosetta 2 emulation on an Apple Silicon host, the
next automatic update via Sparkle should use a native Apple Silicon
build rather than the newest Intel build.

This is achieved by setting a custom feed URL on the delegate object
which will then respond with this URL (or alternatively with "nil")
when Sparkle calls the appropriate delegate method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant