2016-04-19 8 views
2

Qtで構築されたOSXアプリケーションがあります。それはコード化され、マックストアに合うようにパッケージ化され、アップルによって承認されており、Macストアでの販売の準備が整いました。インストール時にproductbuildパスが無視される

インストール後に、/アプリケーションの代わりにパッケージプロセス中にインストールされていた場所にインストールされます。

また、私は/アプリケーションにインストールできるファイルの.dmgパッケージを作成しています。私はこれらのコマンドを実行しているビルド手順の最後に

:私はインストーラ経由でインストールしようとしてるのpkg、となっている

codesign --force --deep --verify MyApp.app/ --entitlements ${INSTDIR}/Entitlements.plist -s "3rd Party Mac Developer Application: Company Name" 
productbuild --component MyApp.app /Applications --sign "3rd Party Mac Developer Installer: Company Name" MyApp.pkg 

結果:

$ sudo installer -store -pkg MyApp.pkg -target/
installer: Note: running installer as an admin user (instead of root) gives better Mac App Store fidelity 
installer: MyApp.pkg has valid signature for submission: 3rd Party Mac Developer Installer: Company Name (key) 
installer: Installation Check: Passed 
installer: Volume Check: Passed 
installer: Bundle com.CompanyName.MyApp will be relocated to /Users/peti/dev/build/bin/Mac/release/MyApp.app 
installer: Starting install 
installer: Install 0.0% complete 
installer: Install 17.1% complete 
installer: Install 96.4% complete 
installer: Install 100.0% complete 
installer: Finished install 

productbuildの直後に、移転は/アプリケーションと言っていましたが、そこにインストールしませんでした!それ以降の実行では、不正なパスが表示されます。私はまた別の場所からインストールしようとしました。

同じことをするMac Storeからアプリをインストールしようとしました...間違ったパスに入ります。

私が使用してきました:

pkgutil --expand 

パッケージを抽出するには。 PackageInfoファイルにはこれが記載されています:

<pkg-info overwrite-permissions="true" relocatable="false" identifier="com.CompanyName.MyApp" postinstall-action="none" version="3.0.0" format-version="2" generator-version="InstallCmds-502 (14F1605)" install-location="/Applications" auth="root" preserve-xattr="true"> 

何か問題が起きる可能性がありますか?私は解決のためにgoogleを試みましたが、運はありません。この不正なパスはどこに保存できますか?私はproductbuildの前に、ファイルに埋め込まれたパスは見ません。 productbuildは変なことをしていますか?

+0

'.dmg'はパッケージではなくディスクイメージですが、確実にその上に' .pkg'を保存することができます。 –

+0

@ I'L'I私は理解していないことは、なぜパッケージングの場所がインストールパスと関係しているのかということです。 – tothphu

+1

ファイルを作成する場所を意味する場合は、ファイルをインストールする場所を決定するために使用されるためです。 –

答えて

1

最後に私は説明があると思う。

ビルドマシン以外のすべてのマシンに正しくインストールされます。その理由は、ファイルシステムの任意の場所からMyApp.appという名前のファイルを実行すると、osxはそのパスを覚えていることになります。だから、次回にインストールしようとすると(アップデート?)、既知のパスでアプリケーションを更新します。

さらに奇妙なシナリオでは、アプリケーションの2つの「インストール」(2つのコピー)があり、もう一度インストールしようとすると、2つのインスタンスが交互にインストールされます。 Appleが決して修正するつもりはないバグのような匂いがする。

help @ l'L'l。ありがとうございます。あなたが私にこのようなふるまいを説明することができれば、プラスになります。

関連する問題