1

すでに多くの方法を試しました: 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.)


これらのファイルからインストーラー パッケージをビルドしてみてください:リンク
成功した場合は、その方法を教えてください。

4

1 に答える 1

11

使用する正しいコマンドは確かproductbuildに ですが、エラーが示すように、フラット パッケージでのみ機能します。そして、あなたMacBookPro2011EFIUpdate.pkgはバンドル スタイルのパッケージです。バンドル スタイルのパッケージはディレクトリであるのに対し、フラット パッケージは xar アーカイブであるという点で、違いは簡単にわかります。

必要なものを取得するには、まずバンドル スタイルのパッケージをフラット パッケージに変換します。
pkgutil --flatten MacBookPro2011EFIUpdate.pkg FlatMacBookPro2011EFIUpdate.pkg

次に、この新しい Flat パッケージを使用する新しい配布ファイルを生成します。
productbuild --package FlatMacBookPro2011EFIUpdate.pkg --synthesize newdist.dist

スクリプトとリソース エントリを Distribution ファイルから newdist.dist にコピーします。次に、最終パッケージをビルドします。
productbuild --resources Resources/ --distribution newdist.dist MyCoolPackage.pkg

于 2012-11-20T04:35:33.303 に答える