terminal-notifier dependency ships an x86_64-only binary; macOS warns "Support Ending for Intel-based Apps"
terminal-notifier dependency ships an x86_64-only binary; macOS warns "Support Ending for Intel-based Apps"
New Issue Checklist
- Updated fastlane to the latest version
- I read the Contribution Guidelines
- I read docs.fastlane.tools
- I searched for existing GitHub issues
Issue Description
On Apple Silicon Macs running recent macOS, the system periodically shows:
Support Ending for Intel-based Apps. This version of "terminal-notifier" includes a component that will not work with a future release of macOS.
The binary macOS is complaining about is vendored inside the terminal-notifier gem, which fastlane depends on. Gem 2.0.0 (2019) ships vendor/terminal-notifier/terminal-notifier.app built for x86_64 only, and the gem executes exactly that file (TerminalNotifier::BIN_PATH).
fastlane pins terminal-notifier, >= 2.0.0', '< 3.0.0' in fastlane.gemspec, so fastlane users cannot get the fixed gem:
- Gem 3.1.0 ships a universal binary (verified by unpacking the gem):
Mach-O universal binary with 2 architectures: [x86_64] [arm64] - The API fastlane uses,
TerminalNotifier.notify(message, options)inlib/fastlane/actions/notification.rb, is unchanged in 3.x. - One constraint: gem 3.1.0 requires Ruby >= 3.2, so relaxing the pin may need a conditional dependency or a planned bump.
Environment
- fastlane 2.238.0, installed via RubyGems under Ruby 3.3.11
- macOS on Apple Silicon (arm64), Homebrew arm64
Reproduction
- Install fastlane on an Apple Silicon Mac.
- Wait for macOS's Intel-app scan or run a lane that posts a notification.
- macOS shows the "Support Ending for Intel-based Apps" warning naming terminal-notifier.
Evidence from the installed gem:
$ file .../gems/terminal-notifier-2.0.0/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier
Mach-O 64-bit executable x86_64Workaround
Overwrite the vendored bundle with the arm64 build Homebrew ships:
cp -Rf /opt/homebrew/Cellar/terminal-notifier/2.0.0/terminal-notifier.app/ \
"$(gem which terminal-notifier | xargs dirname)/../vendor/terminal-notifier/"This resets on any gem reinstall.
Request
Relax or conditionally bump the terminal-notifier pin so fastlane resolves to gem 3.x on Ruby >= 3.2, which vendors the universal binary and silences the macOS warning.
Source: fastlane/fastlane