跳过正文
  1. Posts/

获取某个 Mac 应用的 BundleID

·1 分钟·

我们知道无论是 iOS 还是 macOS 上的应用,其配置信息都是通过 plist 文件组织的,该应用的 BundleID 就藏在这个文件中,通过读取 plist 文件就能够知道其 Bundle ID 以及应用版本号等信息。我们以 App Store.app 为例,其 plist 文件就存储在如下路径,其他应用也是如此。

App Store in Alfred

打开该 plist 文件就能找到该应用的配置信息。如下图所示。

plist text

大家知道 plist 本质上是 XML 格式的文件,我们需要找到键为 CFBundleIdentifier 的值,在上图中是 51 行, 52 行为其值,为 com.apple.AppStore.

知道了原理,就好办多了,macOS 内置有 plist 的工具 PlistBuddy,我们输入 plist 文件的路径,抽取某个 Key 的值就行。

PlistBuddy

详细的 PlistBuddy 描述可以看下 What is PlistBuddy?

相关文章

LetsMove 中的几个点

当我们从网络上下载某个 mac app 之后,一般都会默认在 Downloads 目录里,但是某一些 App 是需要放置到 Application 目录才行,最常见的就是自更新功能是受到当前所处目录的限制的,这时候很多下载到本地的 .app 文件打开之后都会弹出提示框,让用户选择是否移动到 Applications 目录,LetsMove 就是大部分 mac app 参考或者集成的开源库,封装了这套逻辑。

XPC Services

·3 分钟
关于 XPC # 因为最近在做的工作涉及到这一块,就大致的记录一下,针对 XPC 技术也做个总结。

关于 Library 和 Framework

·8 分钟
Library 和 Framework 的概念大家应该脑海里都有一些,本文旨在讲述下基本概念,没有对每个字节都了如指掌。关于基本的编译过程在 Build Process 一文中也大概讲述了一些。

Build Process

编程语言的处理过程大致会有五个阶段,其每个阶段均有对应的工具: 预处理器 Preprocessor 编译器 Compiler 汇编器 Assembler 链接器 Linker 加载器 Loader 我们以一个简单的源文件,来看看具体这几个步骤都做了哪些事情。