Macos 将许可证文件附加到OSX下的dmg

Macos 将许可证文件附加到OSX下的dmg,macos,licensing,dmg,Macos,Licensing,Dmg,伙计们!是否有任何命令行可用于将许可证文件附加到dmg 多谢各位 (我在编辑器方面遇到了问题,如果您在文本中看到“奇怪的事情”,请原谅我)这是一个家伙写的,您可以从命令行调用它,将软件许可协议附加到磁盘映像文件 适用于10.6及更新版本 根据他最初的博客记录: 此脚本在Python 2.6或2.7上运行。如果Rez的默认位置 而扁平碳集管在您的机器上是不同的,您需要 使用命令行选项--rez指定正确位置的步骤 还有--扁平碳纤维 可以很容易地调用,如下所示: ./licenseDMG.py &l

伙计们!是否有任何命令行可用于将许可证文件附加到dmg

多谢各位

(我在编辑器方面遇到了问题,如果您在文本中看到“奇怪的事情”,请原谅我)

这是一个家伙写的,您可以从命令行调用它,将软件许可协议附加到磁盘映像文件

适用于10.6及更新版本

根据他最初的博客记录:

此脚本在Python 2.6或2.7上运行。如果Rez的默认位置 而扁平碳集管在您的机器上是不同的,您需要 使用命令行选项--rez指定正确位置的步骤 还有--扁平碳纤维

可以很容易地调用,如下所示:

./licenseDMG.py <dmgFile> <licenseFile>
/licenseDMG.py

我写这个新答案是因为
hdiutil
命令不再支持
unflatten
flatten
选项。因此,我使用新的
udifrez
命令以plist格式在xml文件中准备SLA,并成功地做到了这一点

两个许可证文件的模板结构如下所示

<?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>LPic</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAAAAgAAAAAAAAAIAAMAAA==
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string></string>
        </dict>
    </array>
    <key>RTF </key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>

... here goes the English RTF file codified in base64

            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English SLA</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>

... here goes the Spanish RTF file codified in base64
                
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish SLA</string>
        </dict>
    </array>
    <key>STR#</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYNRW5nbGlzaCB0ZXN0MQVBZ3JlZQhEaXNhZ3JlZQVQcmludAdT
            YXZlLi4ueklmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0
            aGlzIGxpY2Vuc2UsIGNsaWNrICJBZ3JlZSIgdG8gYWNjZXNzIHRo
            ZSBzb2Z0d2FyZS4gIElmIHlvdSBkbyBub3QgYWdyZWUsIHByZXNz
            ICJEaXNhZ3JlZS4i
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English buttons</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYHRW5nbGlzaAVBZ3JlZQhEaXNhZ3JlZQVQcmludAdTYXZlLi4u
            e0lmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIGxp
            Y2Vuc2UsIHByZXNzICJBZ3JlZSIgdG8gaW5zdGFsbCB0aGUgc29m
            dHdhcmUuICBJZiB5b3UgZG8gbm90IGFncmVlLCBwcmVzcyAiRGlz
            YWdyZWUiLg==
            </data>
            <key>ID</key>
            <string>5002</string>
            <key>Name</key>
            <string>English</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAYHRXNwYZZvbAdBY2VwdGFyCk5vIGFjZXB0YXIISW1wcmltaXIK
            R3VhcmRhci4uLsBTaSBlc3SHIGRlIGFjdWVyZG8gY29uIGxvcyB0
            jnJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhLCBwdWxzZSAiQWNlcHRh
            ciIgcGFyYSBpbnN0YWxhciBlbCBzb2Z0d2FyZS4gRW4gZWwgc3Vw
            dWVzdG8gZGUgcXVlIG5vIGVzdI4gZGUgYWN1ZXJkbyBjb24gbG9z
            IHSOcm1pbm9zIGRlIGVzdGEgbGljZW5jaWEsIHB1bHNlICJObyBh
            Y2VwdGFyLiI=
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish</string>
        </dict>
    </array>
    <key>TMPL</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            E0RlZmF1bHQgTGFuZ3VhZ2UgSUREV1JEBUNvdW50T0NOVAQqKioq
            TFNUQwtzeXMgbGFuZyBJRERXUkQebG9jYWwgcmVzIElEIChvZmZz
            ZXQgZnJvbSA1MDAwRFdSRBAyLWJ5dGUgbGFuZ3VhZ2U/RFdSRAQq
            KioqTFNURQ==
            </data>
            <key>ID</key>
            <string>128</string>
            <key>Name</key>
            <string>LPic</string>
        </dict>
    </array>
    <key>styl</key>
    <array>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAMAAAAAAAwACQAUAAAAAAAAAAAAAAAAACcADAAJABQBAAAAAAAA
            AAAAAAAAKgAMAAkAFAAAAAAAAAAAAAA=
            </data>
            <key>ID</key>
            <string>5000</string>
            <key>Name</key>
            <string>English SLA</string>
        </dict>
        <dict>
            <key>Attributes</key>
            <string>0x0000</string>
            <key>Data</key>
            <data>
            AAMAAAAAAAwACQAVAAAAAAAAAAAAAAAAACoADAAJABUBAAAAAAAA
            AAAAAAAALgAMAAkAFQAAAAAAAAAAAAA=
            </data>
            <key>ID</key>
            <string>5003</string>
            <key>Name</key>
            <string>Spanish SLA</string>
        </dict>
    </array>
</dict>
</plist>

LPic
属性
0x0000
资料
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==
身份证件
5000
名称
RTF
属性
0x0000
资料
... 下面是用base64编码的英文RTF文件
身份证件
5000
名称
英语二语习得
属性
0x0000
资料
... 下面是用base64编码的西班牙RTF文件
身份证件
5003
名称
西班牙SLA
STR#
属性
0x0000
资料
AAYNRW5nbGlzaCB0ZXN0MQVBZ3JlZQhEaXNhZ3JlZQVQcmludAdT
YXZlLi4ueklmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0
aGlzIGxpY2Vuc2UsIGNsaWNrICJBZ3JlZSIgdG8gYWNjZXNzIHRo
ZSBzb2Z0d2FyZS4gIElmIHlvdSBkbyBub3QgYWdyZWUsIHByZXNz
ICJEaXNhZ3JlZS4i
身份证件
5000
名称
英文按钮
属性
0x0000
资料
AAYHRW5nbGlzaAVBZ3JlZQhEaXNhZ3JlZQVQcmludAdTYXZlLi4u
e0lmIHlvdSBhZ3JlZSB3aXRoIHRoZSB0ZXJtcyBvZiB0aGlzIGxp
Y2VUC2usiHBYZXNZICJBZ3JLZSIGDG8GAW5ZDGFSBC0AGUGC29M
DHDHCMUUICBJZIB5B3UGZG8GBM90IGFNCMVLLCBWCMVZCYIGLZ
YWdyZWUiLg==
身份证件
5002
名称
英语
属性
0x0000
资料
AAYHRXNWYZVBADBY2VWDGFYCK5VIGFJZXB0YXIISW1WCMLTAXIK
R3VHCMRHCI4ULSBTASBLc3ShigrigfJDWVYZG8GY29UIGxVCYB0
jnJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhLCBwdWxzZSAiQWNlcHRh
CIIGCGFYYSBPBNN0YWXHCIBCBZB2Z0D2FYZS4GRW4GZWWGC3VW
DWVZDG8GZGGUGCxVLIG5VIGVZDI4GZGGYWN1ZXJKBYBJB24GBG9Z
IHSOCM1PBM9ZIGRLIGVZDGBGGLJZW5JAWESIHB1BHNLICJOBH
Y2VwdGFyLiI=
身份证件
5003
名称
西班牙的
TMPL
属性
0x0000
资料
E0RlZmF1bHQgTGFuZ3VhZ2UgSUREV1JEBUNvdW50T0NOVAQqKioq
TFNUQWTZEXMGBGFUZYBJRERXUKQEBG9JYWGCMVZIELEICHVZMZZ
ZXQgZnJvbSA1MDAwRFdSRBAyLWJ5dGUgbGFuZ3VhZ2U/RFdSRAQq
基奥克特夫努尔克==
身份证件
128
名称
LPic
斯蒂尔
属性
0x0000
资料
aamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajabqbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaa kgamakafaaaaaaaaaaaaaaaaaaaaaa=
身份证件
5000
名称
英语二语习得
属性
0x0000
资料
aamaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakabubaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaalgamaakafqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=
身份证件
5003
名称
西班牙SLA
我设法在正确的位置对与英语sla和西班牙语sla文件相对应的两个rtf文件进行base64编码


注意,如果您使用的是其他语言,则需要仔细更改模板文件中的一些其他内容。但至少,我可以给你一些开始工作的东西。

链接已失效,该网站的作者在GitHub或BitBucket上没有相应的代码。@KonradRudolph他的原始帖子在Internet存档(archive.org)上,我为你更新了链接。该脚本的版权日期为2018年,但这篇文章太旧了,我不能100%肯定它会起作用。让我知道。@MichaelDautermann哇,谢谢。在此期间,我找到了使用Rez(此脚本是一个包装器)手动执行此操作的说明。您好,这似乎是因为MacOS Big Sur(或Bug!)hdiutil unflatten和flatten选项不再可用。这意味着,我们需要使用uidfrez-xml。。。我实际上可以向dmg添加一个许可证文件,但在单击“接受”按钮后,dmg无法打开,并且已损坏。问题的根源是我准备的sla.xml文件是从以前的有效.dmg中提取的,但它是xml格式的plist文件,我需要修改并删除损坏dmg的部分。我不知道哪些零件应该被移除,并且没有文件。。。欢迎任何帮助!谢谢我花了几个小时,但现在完成了。xml文件格式是xml格式的plist文件。该文件的内容取决于许可证文件中的内容,但其结构与.r文件中的结构相同。我需要生成一个n