MacOS 移除私有化接口,需要的谨慎升级。

163 天前
 a66243766

/System/Library/PrivateFrameworks/MediaRemote.framework

Response: playbackQueue<D42CE038-BF50-420F-8CF6-C48AA27EF723 now-playing-44118 /M/L/AF/A600.000000x600.000000/R[0:1]> returned with error <Error Domain=kMRMediaRemoteFrameworkErrorDomain Code=3 "Operation not permitted" UserInfo={NSLocalizedDescription=Operation not permitted}> in 0.0771 seconds

macOS 15.4 发布说明分析

通过搜索 macOS 15.4 发布说明( macOS Sequoia 15.4 Release Notes | Apple Developer Documentation ),未找到直接提及新媒体框架或 API 的内容。用户支持页面( What's new in the updates for macOS Sequoia - Apple Support )列出了一些媒体相关功能(如 Podcasts 小部件),但未涉及开发者 API 。

在 2025 年 4 月 2 日的背景下,macOS 15.4 (即 macOS Sequoia 15.4 )移除 /System/Library/PrivateFrameworks/MediaRemote.framework 引发了开发者对获取当前播放媒体信息替代方案的关注。以下是详细调查结果,涵盖了探索过程和可能的解决方案。

背景与问题分析

MediaRemote.framework 是一个私有框架,过去用于与媒体服务器( mediaserverd )通信,允许查询当前播放信息、控制播放/暂停等功能(如 Dev:MediaRemote.framework - The Apple Wiki 所述)。其移除意味着开发者需要寻找新的方法,尤其是在 macOS 15.4 发布后( macOS Sequoia 15.4 Release Notes | Apple Developer Documentation )。调查发现,官方发布说明未明确提及替代方案,可能因其私有性质不予公开。

3487 次点击
所在节点    macOS
15 条回复
a66243766
163 天前
MediaMate.app 正在播放 获取已经失效,刘海无效。



a66243766
163 天前
移除 build 报错,目录 MediaRemote.framework 已经不存在

mietl
163 天前
😭
icyalala
163 天前
都 PrivateFrameworks 了你还能指望依赖这个?就算正常用 Public API 大版本升级也经常崩给你看
ST0RMTR00PER
163 天前
我怀疑我的这个问题是不是因为这个原因: https://www.v2ex.com/t/1122695
a66243766
163 天前
@ST0RMTR00PER 应该不是的,你这个框架在之前的版本就已经存在了,https://github.com/alexey-lysiuk/macos-sdk/tree/main/MacOSX14.5.sdk/System/Library/PrivateFrameworks/ChronoCore.framework/Versions/A ,感觉是交互类相关的框架
a66243766
163 天前
@icyalala 很多不能上架 appstore 的 app 其实都在调用这个私有化框架,
ST0RMTR00PER
163 天前
@a66243766 因为我看这个 chronod 有调用到 Widget 之类的 API ,我使用的 Airbuddy 3 的 Widget 有用到 Now Playing 的 API ,然后一启用就会占满 CPU 。

这是 ChatGPT 告诉我的:

初步结论:
· chronod 正陷入异常的同步调用链和资源竞争,表现为:
· 多线程死循环轮询(_dispatch_kq_poll )
· 闭包嵌套调用( Swift Dispatch 和 CoreFoundation 层)
· 与 ReplicatorServices 模块高频互动,疑似为数据同步任务
· 所有 CPU 占用均来源于活跃阻塞线程,而非单一任务耗时

查了两天,还是没解决我的问题。
icyalala
163 天前
@a66243766 我 Github 搜了一下用的人还真不少。。。
https://github.com/aviwad/LyricFever/issues/94#issuecomment-2746155419
苹果这是明确用 entitlements 来限制权限了
GPLer
163 天前
已经升完了,话说对用户来说,如果不使用这个特性,是不是升级上去更好,允许查询控制媒体播放这个接口看上去就很危险。
0619
163 天前
@ST0RMTR00PER 请问 Airbuddy 3 在哪里下载
ST0RMTR00PER
163 天前
https://v2.airbuddy.app/join-beta 填入邮箱就会收到 Beta 测试,但是需要 2 的激活码,不建议用 3 ,我用了后发现有问题。
xuegy
163 天前
这不就是像之前的剪贴板一样堵住了隐私漏洞吗?开发者急了,说明...
JohnSwit
162 天前
我说怎么我显示当前播放信息,控制播放/暂停的功能为啥失效了,原来是这个问题
PhDLuffy
161 天前
控制用户播放器干嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1122960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX