已经尝试了很多方法:pkgbuild,productbuild,PackageMaker,Packages应用程序......
我要构建的扁平包的结构:
Distribution - xml script
MacBookPro2011EFIUpdate.pkg - flat package
Resources - resources folder, contains language localizations
扁平包裹信息:
id="com.apple.pkg.MacBookPro2011EFIUpdate" version="2.7.0.0.1.1330468277"
例如,我使用productbuild失败了:
productbuild: error: Cannot copy package "MacBookPro2011EFIUpdate.pkg" into product.
(Bundle-style package "MacBookPro2011EFIUpdate.pkg" is not supported.)
请尝试从这些文件构建安装程序包:Link
而且,如果你成功了,请告诉你如何做到这一点!
答案 0 :(得分:9)
正确使用的命令确实是productbuild
,但它只适用于Flat包,如错误所示。而你的MacBookPro2011EFIUpdate.pkg
是一个Bundle风格的包:很容易区分Bundle风格的包是一个目录,而Flat包是一个xar存档。
要获得您想要的,首先将Bundle风格的包转换为Flat包:
pkgutil --flatten MacBookPro2011EFIUpdate.pkg FlatMacBookPro2011EFIUpdate.pkg
然后生成一个使用这个新Flat包的新分发文件:
productbuild --package FlatMacBookPro2011EFIUpdate.pkg --synthesize newdist.dist
将您的分发文件中的脚本和资源条目复制到newdist.dist中。然后建立你的最终包:
productbuild --resources Resources/ --distribution newdist.dist MyCoolPackage.pkg