MacOS:未捆绑/ unix可执行文件的版本信息

dev*_*ull 6 macos finder mach-o spotlight info.plist

对我来说这是一个难题:

  • for Bundles/Frameworks版本位于Info.plist中
  • 对于旧应用程序,它放在资源分叉中

但是今天我发现了一个新的可执行文件(LaunchDaemon),它没有资源分支,没有Info.plist,并且根据Finder中的右窗格有1.0.0.1110版本.问题是版本来自哪里?

Ken*_*ses 4

我不知道您所指的特定 LaunchDaemon 程序,但对于一般情况,可以在链接时将 Info.plist 嵌入到可执行文件中。

\n\n

传递-sectcreate __TEXT __info_plist path/to/Info.plist给编译器ld,或者等效地传递-Wl,-sectcreate,__TEXT,__info_plist,path/to/Info.plist给编译器。

\n\n

Apple 在《代码签名指南:代码签名任务 \xe2\x80\x93 将 Info.plist 添加到单文件工具》中对此进行了记录。

\n\n

您可以通过查看 的输出来检查您所指的 LaunchDaemon 程序是否发生了这种情况otool -lV path/to/whatever

\n

  • 或者,您可以在项目的构建设置中将“CREATE_INFOPLIST_SECTION_IN_BINARY”构建设置设置为“Yes”,而不是“-sectcreate”选项。 (3认同)
  • @0xced 另外,您需要将“INFOPLIST_FILE”设置为“path/to/Info.plist”。 (2认同)