伙计们!我可以使用任何命令行将许可证文件附加到 dmg 吗?
非常感谢
(我在编辑器上遇到问题,如果您在文中看到“奇怪的东西”,请见谅)
我为您找到了一个博客条目(链接到此处),其中该人编写了一个 python 脚本,您可以从命令行调用该脚本,将软件许可协议附加到磁盘映像文件。
适用于 10.6 及更高版本。
根据他的原始博客条目:
此脚本在 Python 2.6 或 2.7 上运行。如果 Rez 和 FlatCarbon 标头在您的机器上的默认位置不同,您需要使用命令行选项 --rez 和 --flat-carbon 指定正确的位置。
他的脚本(单击此链接查看)可以很容易地调用:
./licenseDMG.py <dmgFile> <licenseFile>
我写了这个新答案,因为该hdiutil
命令不再支持unflatten
和flatten
选项。所以我设法用新udifrez
命令做同样的事情,用 plist 格式在 xml 文件中准备 slas。
两个许可证文件的模板结构是这样的
<?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>
我设法在正确的位置对与英文 sla 和西班牙文 sla 文件对应的两个 rtf 文件进行了 base64 编码。
注意,如果您使用其他语言,您需要仔细更改模板文件中的一些其他内容。但至少,我可以给你一些东西来开始工作。