frontend: Force Intel-based installations to update to Apple Silicon version on macOS#13410
Open
PatTheMav wants to merge 2 commits intoobsproject:masterfrom
Open
frontend: Force Intel-based installations to update to Apple Silicon version on macOS#13410PatTheMav wants to merge 2 commits intoobsproject:masterfrom
PatTheMav wants to merge 2 commits intoobsproject:masterfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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
Checklist: