【问题标题】:How to add version and copyright info to a file in MacOs如何将版本和版权信息添加到 MacOs 中的文件
【发布时间】:2018-06-28 08:24:14
【问题描述】:

我正在 GoLang 中为 MacOs 构建一个可执行文件。 我需要将版本和版权信息添加到构建文件中。 在 go build 过程中或之后如何执行此操作?

例如 iBooks 应用程序具有此信息

附: 我通常只为 Windows 构建,我使用 Versioninfo 格式添加文件属性,但找不到与 MacOs 等效的东西

【问题讨论】:

    标签: macos go versioninfo


    【解决方案1】:

    iBooks 是一个应用程序包,而不是像使用 go 构建的单个二进制文件。因此,您需要找到一种将 go 二进制文件包装在应用程序包中的方法,以便获取此详细信息,以及它是否适用于您的可执行文件。

    如果您右键单击 iBooks 图标,然后选择“显示包内容”,然后导航到 Contents 文件夹,您将找到(在其他文件+文件夹中)一个 Info.plist 文件和一个 version.plist 文件,其中包含分别定义版权和版本。

    Info.plist

    ...
    <key>NSHumanReadableCopyright</key>
    <string>Copyright © 2013–2018 Apple Inc. All rights reserved.</string>
    ...
    

    version.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>BuildAliasOf</key>
        <string>iBooks</string>
        <key>BuildVersion</key>
        <string>1</string>
        <key>CFBundleShortVersionString</key>
        <string>1.14</string>
        <key>CFBundleVersion</key>
        <string>1458.15</string>
        <key>ProjectName</key>
        <string>iBooks</string>
        <key>SourceVersion</key>
        <string>1458015000000000</string>
    </dict>
    </plist>
    

    【讨论】:

    • 您可以通过将 -sectcreate __TEXT __info_plist path/to/file 传递给链接器,将 Info.plist 嵌入到独立的可执行文件中。如果编译器正在驱动链接器(这很常见),您可以将-Wl,-sectcreate,__TEXT,__info_plist,path/to/file 传递给编译器。此外,版本信息位于 Info.plist 文件中。我不认为 version.plist 被系统用于任何事情。
    猜你喜欢
    • 2012-06-27
    • 2016-07-30
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多