swift - 检测应用程序是否在 macOS beta 版本上运行

标签 swift macos cocoa beta macos-big-sur

我希望能够以某种方式检测我的应用程序是否在测试版 macOS 11 上运行,因为我想将一些已知错误告知用户。我只想向 macOS 11 beta 用户显示这样的警报,这意味着不是 macOS 10.15 用户,也不是 macOS 11 最终版本的用户。我当然可以在 macOS 11 即将完成时提交应用程序更新以删除警报,但如果有一些可重复使用的东西我可以在多个应用程序和 future 的 macOS beta 版本中使用,那就太好了。

约束:

  • 该应用程序是沙盒。
  • 该应用在 App Store 中,因此没有私有(private) API。
  • 该应用没有网络授权,因此检测需要离线。
  • 我不想捆绑已知 macOS 内部版本号的列表并进行比较。

我的想法是也许可以使用某种嗅探。可能有一些 API 在 macOS 版本为 beta 版本时返回不同的结果。

最佳答案

我相信你运气不好。 About This Mac 使用 PrivateFrameworks/Seeding.framework,这里是重要的反汇编:

/* @class SDBuildInfo */
+(char)currentBuildIsSeed {
    return 0x0;
}

所以这似乎是一个构建时编译器标志。不幸的是,框架中的 plist 不包含此标志。

私有(private) API 使用示例:kaloprominat/currentBuildIsSeed.py

疯狂的人:可以读取二进制文件并比较函数的程序集。我将从类转储代码开始,它会为您提供不同的胖二进制文件和函数偏移量。

关于swift - 检测应用程序是否在 macOS beta 版本上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62744103/

相关文章:

ios - 如何在之前Api成功的基础上调用多个Api

python-3.x - Anaconda 和升级到新的 M1 Mac

Xcode 无法安装在 “Macintosh HD” 因为需要 macOS 版本 10.13.6 或更高版本

iphone - NSMutableArray 在索引处从其他数组添加对象

ios - Afnetworking post 请求的代码提取

swift - 如何使用 `AVCaptureSessionPreset320x240` ?

python - 从 Objective-C 调用 Python

cocoa - 如何给 NSWindow 特定的背景颜色

swift - Codable 和 CodingKeys

macos - 安装google cloud sdk时出现"ImportError: No module named zlib"